}
@Test
public void testCacheRecursiveOverMemberBoundaries() throws Exception
{
CDROutputStream out = (CDROutputStream) orb.create_output_stream();
RecursiveA recA = new RecursiveA();
recA.value = 1234;
recA.member = new RecursiveA[0];
RecursiveB recB = new RecursiveB();
recB.a_struct = recA;
recB.value = 2000;
RecursiveC recC = new RecursiveC();
recC.a_struct = recA;
recC.b_struct = recB;
RecursiveBHelper.insert(both.first_any, recB);
RecursiveCHelper.insert(both.second_any, recC);
BothHelper.write(out, both);
CDRInputStream in = new CDRInputStream(orb, out.getBufferCopy());
Both copy = BothHelper.read(in);
assertTrue(RecursiveBHelper.type().equivalent(copy.first_any.type()));
assertTrue(RecursiveCHelper.type().equivalent(copy.second_any.type()));
}