static void testAnySeq(ORB orb, DynAnyFactory factory) {
try {
int i;
short s;
Any any = orb.create_any();
Any av;
DynAny d1, d2, comp, copy;
String str;
DynSequence s1, s2;
TypeCode type, tc;
Any[] seq;
Any[] pseq;
//
// Test: initialization
//
type = TestAnySeqHelper.type();
d1 = factory.create_dyn_any_from_type_code(type);
s1 = DynSequenceHelper.narrow(d1);
TEST(s1.get_length() == 0);
TEST(s1.component_count() == 0);
//
// Test: set_length() - increase length - position should be 0
//
s1.set_length(5);
TEST(s1.get_length() == 5);
TEST(s1.component_count() == 5);
for (i = 0; i < 5; i++) {
any.insert_short((short) i);
s1.insert_any(any);
s1.next();
}
s1.rewind();
for (i = 0; i < 5; i++) {
av = s1.get_any();
s = av.extract_short();
TEST(s == (short) i);
s1.next();
}
//
// Test: set_length() - decrease length - position should not
// change
//
s1.seek(1);
s1.set_length(3);
av = s1.get_any();
s = av.extract_short();
TEST(s == (short) 1);
TEST(s1.get_length() == 3);
TEST(s1.component_count() == 3);
s1.rewind();
for (i = 0; i < 3; i++) {
av = s1.get_any();
s = av.extract_short();
TEST(s == (short) i);
s1.next();
}
//
// Test: to_any
//
av = s1.to_any();
pseq = TestAnySeqHelper.extract(av);
TEST(pseq.length == 3);
for (i = 0; i < 3; i++) {
s = pseq[i].extract_short();
TEST(s == (short) i);
}
//
// Test: copy
//
copy = s1.copy();
TEST(s1.equal(copy));
copy.destroy();
//
// Test: equal
//
copy = s1.copy();
copy.seek(1);
any.insert_short((short) -33);
copy.insert_any(any);
TEST(!s1.equal(copy));
copy.destroy();
//
// Test: from_any
//
seq = new Any[8];
for (i = 0; i < 8; i++) {
seq[i] = orb.create_any();
seq[i].insert_short((short) (8 - i));
}
TestAnySeqHelper.insert(any, seq);
s1.from_any(any);
s1.rewind();
for (i = 0; i < 8; i++) {
av = s1.get_any();
s = av.extract_short();
TEST(s == (short) (8 - i));
s1.next();
}
//
// Test: components - ensure that the sequence and its components
// are synchronized
//
s1.rewind();
for (i = 0; i < 8; i++) {
comp = s1.current_component();
av = comp.get_any();
s = av.extract_short();
TEST(s == (short) (8 - i));
any.insert_short((short) i);
comp.insert_any(any);
av = s1.get_any();
s = av.extract_short();
TEST(s == (short) i);
s1.next();
}
//
// Test: get_elements()
//
Any[] anySeq = s1.get_elements();
TEST(anySeq.length == 8);
for (i = 0; i < 8; i++) {
Any p = anySeq[i].extract_any();
s = p.extract_short();
TEST(s == (short) i);
}
//
// Test: set_elements()
//
anySeq = new Any[3]; // decrease sequence length
for (i = 0; i < 3; i++) {
Any anyVal = orb.create_any();
anyVal.insert_short((short) (i + 10));
anySeq[i] = orb.create_any();
anySeq[i].insert_any(anyVal);
}
s1.set_elements(anySeq);
s1.rewind();
for (i = 0; i < 3; i++) {
av = s1.get_any();
s = av.extract_short();
TEST(s == (short) (i + 10));
s1.next();
}
//
// Test: get_elements_as_dyn_any()
//
DynAny[] dynAnySeq = s1.get_elements_as_dyn_any();
TEST(dynAnySeq.length == 3);
for (i = 0; i < 3; i++) {
av = dynAnySeq[i].get_any();
s = av.extract_short();
TEST(s == (short) (i + 10));
}
//
// Test: set_elements_as_dyn_any
//
dynAnySeq = new DynAny[4]; // increase sequence length
for (i = 0; i < 4; i++) {
Any anyVal = orb.create_any();
anyVal.insert_short((short) (i + 100));
any.insert_any(anyVal);
dynAnySeq[i] = factory.create_dyn_any(any);
}
s1.set_elements_as_dyn_any(dynAnySeq);
s1.rewind();