diff options
Diffstat (limited to 'java/test/Ice/optional/AllTests.java')
-rw-r--r-- | java/test/Ice/optional/AllTests.java | 1091 |
1 files changed, 1044 insertions, 47 deletions
diff --git a/java/test/Ice/optional/AllTests.java b/java/test/Ice/optional/AllTests.java index 3f8f2ca8722..98538ba7311 100644 --- a/java/test/Ice/optional/AllTests.java +++ b/java/test/Ice/optional/AllTests.java @@ -317,6 +317,21 @@ public class AllTests test(!mo9.hasBos()); + { + OptionalWithCustom owc1 = new OptionalWithCustom(); + java.util.ArrayList<Byte> l = new java.util.ArrayList<Byte>(); + l.add((byte)5); + l.add((byte)6); + l.add((byte)7); + owc1.setBs(l); + owc1.setS(new ClassVarStruct(5)); + OptionalWithCustom owc2 = (OptionalWithCustom)initial.pingPong(owc1); + test(owc2.hasBs()); + test(owc2.getBs().equals(l)); + test(owc2.hasS()); + test(owc2.getS().a == 5); + } + // // Send a request using blobjects. Upon receival, we don't read // any of the optional members. This ensures the optional members @@ -509,16 +524,24 @@ public class AllTests out.print("testing optional parameters... "); out.flush(); { - Ice.Optional<Byte> p1 = new Ice.Optional<Byte>(); - Ice.Optional<Byte> p3 = new Ice.Optional<Byte>(); - Ice.Optional<Byte> p2 = initial.opByte(p1, p3); + Ice.ByteOptional p1 = new Ice.ByteOptional(); + Ice.ByteOptional p3 = new Ice.ByteOptional(); + Ice.ByteOptional p2 = initial.opByteOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); p1.set((byte)56); - p2 = initial.opByte(p1, p3); + p2 = initial.opByteOpt(p1, p3); + test(p2.get() == (byte)56 && p3.get() == (byte)56); + Ice.AsyncResult r = initial.begin_opByteOpt(p1); + p2 = initial.end_opByteOpt(p3, r); + test(p2.get() == (byte)56 && p3.get() == (byte)56); + p2 = initial.opByte(p1.get(), p3); + test(p2.get() == (byte)56 && p3.get() == (byte)56); + r = initial.begin_opByte(p1.get()); + p2 = initial.end_opByte(p3, r); test(p2.get() == (byte)56 && p3.get() == (byte)56); - p2 = initial.opByte(new Ice.Optional<Byte>(), p3); + p2 = initial.opByteOpt(new Ice.ByteOptional(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); @@ -542,16 +565,147 @@ public class AllTests } { - Ice.Optional<Long> p1 = new Ice.Optional<Long>(); - Ice.Optional<Long> p3 = new Ice.Optional<Long>(); - Ice.Optional<Long> p2 = initial.opLong(p1, p3); + Ice.BooleanOptional p1 = new Ice.BooleanOptional(); + Ice.BooleanOptional p3 = new Ice.BooleanOptional(); + Ice.BooleanOptional p2 = initial.opBoolOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(true); + p2 = initial.opBoolOpt(p1, p3); + test(p2.get() == true && p3.get() == true); + Ice.AsyncResult r = initial.begin_opBoolOpt(p1); + p2 = initial.end_opBoolOpt(p3, r); + test(p2.get() == true && p3.get() == true); + p2 = initial.opBool(true, p3); + test(p2.get() == true && p3.get() == true); + r = initial.begin_opBool(true); + p2 = initial.end_opBool(p3, r); + test(p2.get() == true && p3.get() == true); + + p2 = initial.opBoolOpt(new Ice.BooleanOptional(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.F1); + os.writeBool(p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opBool", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.F1)); + test(in.readBool() == true); + test(in.readOptional(3, Ice.OptionalType.F1)); + test(in.readBool() == true); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.ShortOptional p1 = new Ice.ShortOptional(); + Ice.ShortOptional p3 = new Ice.ShortOptional(); + Ice.ShortOptional p2 = initial.opShortOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set((short)56); + p2 = initial.opShortOpt(p1, p3); + test(p2.get() == 56 && p3.get() == 56); + Ice.AsyncResult r = initial.begin_opShortOpt(p1); + p2 = initial.end_opShortOpt(p3, r); + test(p2.get() == 56 && p3.get() == 56); + p2 = initial.opShort(p1.get(), p3); + test(p2.get() == 56 && p3.get() == 56); + r = initial.begin_opShort(p1.get()); + p2 = initial.end_opShort(p3, r); + test(p2.get() == 56 && p3.get() == 56); + + p2 = initial.opShortOpt(new Ice.ShortOptional(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.F2); + os.writeShort(p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opShort", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.F2)); + test(in.readShort() == 56); + test(in.readOptional(3, Ice.OptionalType.F2)); + test(in.readShort() == 56); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.IntOptional p1 = new Ice.IntOptional(); + Ice.IntOptional p3 = new Ice.IntOptional(); + Ice.IntOptional p2 = initial.opIntOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(56); + p2 = initial.opIntOpt(p1, p3); + test(p2.get() == 56 && p3.get() == 56); + Ice.AsyncResult r = initial.begin_opIntOpt(p1); + p2 = initial.end_opIntOpt(p3, r); + test(p2.get() == 56 && p3.get() == 56); + p2 = initial.opInt(p1.get(), p3); + test(p2.get() == 56 && p3.get() == 56); + r = initial.begin_opInt(p1.get()); + p2 = initial.end_opInt(p3, r); + test(p2.get() == 56 && p3.get() == 56); + + p2 = initial.opIntOpt(new Ice.IntOptional(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.F4); + os.writeInt(p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opInt", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.F4)); + test(in.readInt() == 56); + test(in.readOptional(3, Ice.OptionalType.F4)); + test(in.readInt() == 56); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.LongOptional p1 = new Ice.LongOptional(); + Ice.LongOptional p3 = new Ice.LongOptional(); + Ice.LongOptional p2 = initial.opLongOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); - p1.set((long)56); - p2 = initial.opLong(p1, p3); + p1.set(56); + p2 = initial.opLongOpt(p1, p3); + test(p2.get() == 56 && p3.get() == 56); + Ice.AsyncResult r = initial.begin_opLongOpt(p1); + p2 = initial.end_opLongOpt(p3, r); + test(p2.get() == 56 && p3.get() == 56); + p2 = initial.opLong(p1.get(), p3); + test(p2.get() == 56 && p3.get() == 56); + r = initial.begin_opLong(p1.get()); + p2 = initial.end_opLong(p3, r); test(p2.get() == 56 && p3.get() == 56); - p2 = initial.opLong(new Ice.Optional<Long>(), p3); + p2 = initial.opLongOpt(new Ice.LongOptional(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); @@ -575,16 +729,106 @@ public class AllTests } { + Ice.FloatOptional p1 = new Ice.FloatOptional(); + Ice.FloatOptional p3 = new Ice.FloatOptional(); + Ice.FloatOptional p2 = initial.opFloatOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set((float)1.0); + p2 = initial.opFloatOpt(p1, p3); + test(p2.get() == 1.0 && p3.get() == 1.0); + Ice.AsyncResult r = initial.begin_opFloatOpt(p1); + p2 = initial.end_opFloatOpt(p3, r); + test(p2.get() == 1.0 && p3.get() == 1.0); + p2 = initial.opFloat(p1.get(), p3); + test(p2.get() == 1.0 && p3.get() == 1.0); + r = initial.begin_opFloat(p1.get()); + p2 = initial.end_opFloat(p3, r); + test(p2.get() == 1.0 && p3.get() == 1.0); + + p2 = initial.opFloatOpt(new Ice.FloatOptional(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.F4); + os.writeFloat(p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opFloat", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.F4)); + test(in.readFloat() == 1.0); + test(in.readOptional(3, Ice.OptionalType.F4)); + test(in.readFloat() == 1.0); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.DoubleOptional p1 = new Ice.DoubleOptional(); + Ice.DoubleOptional p3 = new Ice.DoubleOptional(); + Ice.DoubleOptional p2 = initial.opDoubleOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(1.0); + p2 = initial.opDoubleOpt(p1, p3); + test(p2.get() == 1.0 && p3.get() == 1.0); + Ice.AsyncResult r = initial.begin_opDoubleOpt(p1); + p2 = initial.end_opDoubleOpt(p3, r); + test(p2.get() == 1.0 && p3.get() == 1.0); + p2 = initial.opDouble(p1.get(), p3); + test(p2.get() == 1.0 && p3.get() == 1.0); + r = initial.begin_opDouble(p1.get()); + p2 = initial.end_opDouble(p3, r); + test(p2.get() == 1.0 && p3.get() == 1.0); + + p2 = initial.opDoubleOpt(new Ice.DoubleOptional(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.F8); + os.writeDouble(p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opDouble", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.F8)); + test(in.readDouble() == 1.0); + test(in.readOptional(3, Ice.OptionalType.F8)); + test(in.readDouble() == 1.0); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { Ice.Optional<String> p1 = new Ice.Optional<String>(); Ice.Optional<String> p3 = new Ice.Optional<String>(); - Ice.Optional<String> p2 = initial.opString(p1, p3); + Ice.Optional<String> p2 = initial.opStringOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); p1.set("test"); - p2 = initial.opString(p1, p3); + p2 = initial.opStringOpt(p1, p3); + test(p2.get().equals("test") && p3.get().equals("test")); + Ice.AsyncResult r = initial.begin_opStringOpt(p1); + p2 = initial.end_opStringOpt(p3, r); + test(p2.get().equals("test") && p3.get().equals("test")); + p2 = initial.opString(p1.get(), p3); + test(p2.get().equals("test") && p3.get().equals("test")); + r = initial.begin_opString(p1.get()); + p2 = initial.end_opString(p3, r); test(p2.get().equals("test") && p3.get().equals("test")); - p2 = initial.opString(new Ice.Optional<String>(), p3); + p2 = initial.opStringOpt(new Ice.Optional<String>(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); @@ -608,16 +852,207 @@ public class AllTests } { + Ice.Optional<MyEnum> p1 = new Ice.Optional<MyEnum>(); + Ice.Optional<MyEnum> p3 = new Ice.Optional<MyEnum>(); + Ice.Optional<MyEnum> p2 = initial.opMyEnumOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(MyEnum.MyEnumMember); + p2 = initial.opMyEnumOpt(p1, p3); + test(p2.get() == MyEnum.MyEnumMember && p3.get() == MyEnum.MyEnumMember); + Ice.AsyncResult r = initial.begin_opMyEnumOpt(p1); + p2 = initial.end_opMyEnumOpt(p3, r); + test(p2.get() == MyEnum.MyEnumMember && p3.get() == MyEnum.MyEnumMember); + p2 = initial.opMyEnum(p1.get(), p3); + test(p2.get() == MyEnum.MyEnumMember && p3.get() == MyEnum.MyEnumMember); + r = initial.begin_opMyEnum(p1.get()); + p2 = initial.end_opMyEnum(p3, r); + test(p2.get() == MyEnum.MyEnumMember && p3.get() == MyEnum.MyEnumMember); + + p2 = initial.opMyEnumOpt(new Ice.Optional<MyEnum>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.Size); + p1.get().ice_write(os); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opMyEnum", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.Size)); + test(MyEnum.ice_read(in) == MyEnum.MyEnumMember); + test(in.readOptional(3, Ice.OptionalType.Size)); + test(MyEnum.ice_read(in) == MyEnum.MyEnumMember); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.Optional<SmallStruct> p1 = new Ice.Optional<SmallStruct>(); + Ice.Optional<SmallStruct> p3 = new Ice.Optional<SmallStruct>(); + Ice.Optional<SmallStruct> p2 = initial.opSmallStructOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new SmallStruct((byte)56)); + p2 = initial.opSmallStructOpt(p1, p3); + test(p2.get().m == (byte)56 && p3.get().m == (byte)56); + Ice.AsyncResult r = initial.begin_opSmallStructOpt(p1); + p2 = initial.end_opSmallStructOpt(p3, r); + test(p2.get().m == (byte)56 && p3.get().m == (byte)56); + p2 = initial.opSmallStruct(p1.get(), p3); + test(p2.get().m == (byte)56 && p3.get().m == (byte)56); + r = initial.begin_opSmallStruct(p1.get()); + p2 = initial.end_opSmallStruct(p3, r); + test(p2.get().m == (byte)56 && p3.get().m == (byte)56); + + p2 = initial.opSmallStructOpt(new Ice.Optional<SmallStruct>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeSize(1); + p1.get().ice_write(os); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opSmallStruct", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + in.skipSize(); + SmallStruct f = new SmallStruct(); + f.ice_read(in); + test(f.m == (byte)56); + test(in.readOptional(3, Ice.OptionalType.VSize)); + in.skipSize(); + f.ice_read(in); + test(f.m == (byte)56); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.Optional<FixedStruct> p1 = new Ice.Optional<FixedStruct>(); + Ice.Optional<FixedStruct> p3 = new Ice.Optional<FixedStruct>(); + Ice.Optional<FixedStruct> p2 = initial.opFixedStructOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new FixedStruct(56)); + p2 = initial.opFixedStructOpt(p1, p3); + test(p2.get().m == 56 && p3.get().m == 56); + Ice.AsyncResult r = initial.begin_opFixedStructOpt(p1); + p2 = initial.end_opFixedStructOpt(p3, r); + test(p2.get().m == 56 && p3.get().m == 56); + p2 = initial.opFixedStruct(p1.get(), p3); + test(p2.get().m == 56 && p3.get().m == 56); + r = initial.begin_opFixedStruct(p1.get()); + p2 = initial.end_opFixedStruct(p3, r); + test(p2.get().m == 56 && p3.get().m == 56); + + p2 = initial.opFixedStructOpt(new Ice.Optional<FixedStruct>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeSize(4); + p1.get().ice_write(os); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opFixedStruct", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + in.skipSize(); + FixedStruct f = new FixedStruct(); + f.ice_read(in); + test(f.m == 56); + test(in.readOptional(3, Ice.OptionalType.VSize)); + in.skipSize(); + f.ice_read(in); + test(f.m == 56); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.Optional<VarStruct> p1 = new Ice.Optional<VarStruct>(); + Ice.Optional<VarStruct> p3 = new Ice.Optional<VarStruct>(); + Ice.Optional<VarStruct> p2 = initial.opVarStructOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new VarStruct("test")); + p2 = initial.opVarStructOpt(p1, p3); + test(p2.get().m.equals("test") && p3.get().m.equals("test")); + Ice.AsyncResult r = initial.begin_opVarStructOpt(p1); + p2 = initial.end_opVarStructOpt(p3, r); + test(p2.get().m.equals("test") && p3.get().m.equals("test")); + p2 = initial.opVarStruct(p1.get(), p3); + test(p2.get().m.equals("test") && p3.get().m.equals("test")); + r = initial.begin_opVarStruct(p1.get()); + p2 = initial.end_opVarStruct(p3, r); + test(p2.get().m.equals("test") && p3.get().m.equals("test")); + + p2 = initial.opVarStructOpt(new Ice.Optional<VarStruct>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.FSize); + os.startSize(); + p1.get().ice_write(os); + os.endSize(); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opVarStruct", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.FSize)); + in.skip(4); + VarStruct v = new VarStruct(); + v.ice_read(in); + test(v.m.equals("test")); + test(in.readOptional(3, Ice.OptionalType.FSize)); + in.skip(4); + v.ice_read(in); + test(v.m.equals("test")); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { Ice.Optional<OneOptional> p1 = new Ice.Optional<OneOptional>(); Ice.Optional<OneOptional> p3 = new Ice.Optional<OneOptional>(); - Ice.Optional<OneOptional> p2 = initial.opOneOptional(p1, p3); + Ice.Optional<OneOptional> p2 = initial.opOneOptionalOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); p1.set(new OneOptional(58)); - p2 = initial.opOneOptional(p1, p3); + p2 = initial.opOneOptionalOpt(p1, p3); + test(p2.get().getA() == 58 && p3.get().getA() == 58); + Ice.AsyncResult r = initial.begin_opOneOptionalOpt(p1); + p2 = initial.end_opOneOptionalOpt(p3, r); + test(p2.get().getA() == 58 && p3.get().getA() == 58); + p2 = initial.opOneOptional(p1.get(), p3); + test(p2.get().getA() == 58 && p3.get().getA() == 58); + r = initial.begin_opOneOptional(p1.get()); + p2 = initial.end_opOneOptional(p3, r); test(p2.get().getA() == 58 && p3.get().getA() == 58); - p2 = initial.opOneOptional(new Ice.Optional<OneOptional>(), p3); + p2 = initial.opOneOptionalOpt(new Ice.Optional<OneOptional>(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); @@ -646,14 +1081,22 @@ public class AllTests { Ice.Optional<OneOptionalPrx> p1 = new Ice.Optional<OneOptionalPrx>(); Ice.Optional<OneOptionalPrx> p3 = new Ice.Optional<OneOptionalPrx>(); - Ice.Optional<OneOptionalPrx> p2 = initial.opOneOptionalProxy(p1, p3); + Ice.Optional<OneOptionalPrx> p2 = initial.opOneOptionalProxyOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); p1.set(OneOptionalPrxHelper.uncheckedCast(communicator.stringToProxy("test"))); - p2 = initial.opOneOptionalProxy(p1, p3); + p2 = initial.opOneOptionalProxyOpt(p1, p3); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + Ice.AsyncResult r = initial.begin_opOneOptionalProxyOpt(p1); + p2 = initial.end_opOneOptionalProxyOpt(p3, r); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + p2 = initial.opOneOptionalProxy(p1.get(), p3); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + r = initial.begin_opOneOptionalProxy(p1.get()); + p2 = initial.end_opOneOptionalProxy(p3, r); test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); - p2 = initial.opOneOptionalProxy(new Ice.Optional<OneOptionalPrx>(), p3); + p2 = initial.opOneOptionalProxyOpt(new Ice.Optional<OneOptionalPrx>(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); @@ -683,15 +1126,23 @@ public class AllTests { Ice.Optional<byte[]> p1 = new Ice.Optional<byte[]>(); Ice.Optional<byte[]> p3 = new Ice.Optional<byte[]>(); - Ice.Optional<byte[]> p2 = initial.opByteSeq(p1, p3); + Ice.Optional<byte[]> p2 = initial.opByteSeqOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); p1.set(new byte[100]); java.util.Arrays.fill(p1.get(), (byte)56); - p2 = initial.opByteSeq(p1, p3); + p2 = initial.opByteSeqOpt(p1, p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + Ice.AsyncResult r = initial.begin_opByteSeqOpt(p1); + p2 = initial.end_opByteSeqOpt(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + p2 = initial.opByteSeq(p1.get(), p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + r = initial.begin_opByteSeq(p1.get()); + p2 = initial.end_opByteSeq(p3, r); test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); - p2 = initial.opByteSeq(new Ice.Optional<byte[]>(), p3); + p2 = initial.opByteSeqOpt(new Ice.Optional<byte[]>(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); @@ -715,17 +1166,66 @@ public class AllTests } { + Ice.Optional<boolean[]> p1 = new Ice.Optional<boolean[]>(); + Ice.Optional<boolean[]> p3 = new Ice.Optional<boolean[]>(); + Ice.Optional<boolean[]> p2 = initial.opBoolSeqOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new boolean[100]); + p2 = initial.opBoolSeqOpt(p1, p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + Ice.AsyncResult r = initial.begin_opBoolSeqOpt(p1); + p2 = initial.end_opBoolSeqOpt(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + p2 = initial.opBoolSeq(p1.get(), p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + r = initial.begin_opBoolSeq(p1.get()); + p2 = initial.end_opBoolSeq(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + + p2 = initial.opBoolSeqOpt(new Ice.Optional<boolean[]>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeBoolSeq(p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opBoolSeq", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + test(java.util.Arrays.equals(in.readBoolSeq(), p1.get())); + test(in.readOptional(3, Ice.OptionalType.VSize)); + test(java.util.Arrays.equals(in.readBoolSeq(), p1.get())); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { Ice.Optional<short[]> p1 = new Ice.Optional<short[]>(); Ice.Optional<short[]> p3 = new Ice.Optional<short[]>(); - Ice.Optional<short[]> p2 = initial.opShortSeq(p1, p3); + Ice.Optional<short[]> p2 = initial.opShortSeqOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); p1.set(new short[100]); java.util.Arrays.fill(p1.get(), (short)56); - p2 = initial.opShortSeq(p1, p3); + p2 = initial.opShortSeqOpt(p1, p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + Ice.AsyncResult r = initial.begin_opShortSeqOpt(p1); + p2 = initial.end_opShortSeqOpt(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + p2 = initial.opShortSeq(p1.get(), p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + r = initial.begin_opShortSeq(p1.get()); + p2 = initial.end_opShortSeq(p3, r); test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); - p2 = initial.opShortSeq(new Ice.Optional<short[]>(), p3); + p2 = initial.opShortSeqOpt(new Ice.Optional<short[]>(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); @@ -752,31 +1252,178 @@ public class AllTests } { - Ice.Optional<boolean[]> p1 = new Ice.Optional<boolean[]>(); - Ice.Optional<boolean[]> p3 = new Ice.Optional<boolean[]>(); - Ice.Optional<boolean[]> p2 = initial.opBoolSeq(p1, p3); + Ice.Optional<int[]> p1 = new Ice.Optional<int[]>(); + Ice.Optional<int[]> p3 = new Ice.Optional<int[]>(); + Ice.Optional<int[]> p2 = initial.opIntSeqOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); - p1.set(new boolean[100]); - p2 = initial.opBoolSeq(p1, p3); + p1.set(new int[100]); + java.util.Arrays.fill(p1.get(), 56); + p2 = initial.opIntSeqOpt(p1, p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + Ice.AsyncResult r = initial.begin_opIntSeqOpt(p1); + p2 = initial.end_opIntSeqOpt(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + p2 = initial.opIntSeq(p1.get(), p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + r = initial.begin_opIntSeq(p1.get()); + p2 = initial.end_opIntSeq(p3, r); test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); - p2 = initial.opBoolSeq(new Ice.Optional<boolean[]>(), p3); + p2 = initial.opIntSeqOpt(new Ice.Optional<int[]>(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); os.startEncapsulation(); os.writeOptional(2, Ice.OptionalType.VSize); - os.writeBoolSeq(p1.get()); + os.writeSize(p1.get().length * 4 + (p1.get().length > 254 ? 5 : 1)); + os.writeIntSeq(p1.get()); os.endEncapsulation(); inEncaps = os.finished(); - initial.ice_invoke("opBoolSeq", Ice.OperationMode.Normal, inEncaps, outEncaps); + initial.ice_invoke("opIntSeq", Ice.OperationMode.Normal, inEncaps, outEncaps); in = Ice.Util.createInputStream(communicator, outEncaps.value); in.startEncapsulation(); test(in.readOptional(1, Ice.OptionalType.VSize)); - test(java.util.Arrays.equals(in.readBoolSeq(), p1.get())); + in.skipSize(); + test(java.util.Arrays.equals(in.readIntSeq(), p1.get())); test(in.readOptional(3, Ice.OptionalType.VSize)); - test(java.util.Arrays.equals(in.readBoolSeq(), p1.get())); + in.skipSize(); + test(java.util.Arrays.equals(in.readIntSeq(), p1.get())); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.Optional<long[]> p1 = new Ice.Optional<long[]>(); + Ice.Optional<long[]> p3 = new Ice.Optional<long[]>(); + Ice.Optional<long[]> p2 = initial.opLongSeqOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new long[100]); + java.util.Arrays.fill(p1.get(), 56); + p2 = initial.opLongSeqOpt(p1, p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + Ice.AsyncResult r = initial.begin_opLongSeqOpt(p1); + p2 = initial.end_opLongSeqOpt(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + p2 = initial.opLongSeq(p1.get(), p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + r = initial.begin_opLongSeq(p1.get()); + p2 = initial.end_opLongSeq(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + + p2 = initial.opLongSeqOpt(new Ice.Optional<long[]>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeSize(p1.get().length * 8 + (p1.get().length > 254 ? 5 : 1)); + os.writeLongSeq(p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opLongSeq", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + in.skipSize(); + test(java.util.Arrays.equals(in.readLongSeq(), p1.get())); + test(in.readOptional(3, Ice.OptionalType.VSize)); + in.skipSize(); + test(java.util.Arrays.equals(in.readLongSeq(), p1.get())); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.Optional<float[]> p1 = new Ice.Optional<float[]>(); + Ice.Optional<float[]> p3 = new Ice.Optional<float[]>(); + Ice.Optional<float[]> p2 = initial.opFloatSeqOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new float[100]); + java.util.Arrays.fill(p1.get(), (float)1.0); + p2 = initial.opFloatSeqOpt(p1, p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + Ice.AsyncResult r = initial.begin_opFloatSeqOpt(p1); + p2 = initial.end_opFloatSeqOpt(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + p2 = initial.opFloatSeq(p1.get(), p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + r = initial.begin_opFloatSeq(p1.get()); + p2 = initial.end_opFloatSeq(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + + p2 = initial.opFloatSeqOpt(new Ice.Optional<float[]>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeSize(p1.get().length * 4 + (p1.get().length > 254 ? 5 : 1)); + os.writeFloatSeq(p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opFloatSeq", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + in.skipSize(); + test(java.util.Arrays.equals(in.readFloatSeq(), p1.get())); + test(in.readOptional(3, Ice.OptionalType.VSize)); + in.skipSize(); + test(java.util.Arrays.equals(in.readFloatSeq(), p1.get())); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.Optional<double[]> p1 = new Ice.Optional<double[]>(); + Ice.Optional<double[]> p3 = new Ice.Optional<double[]>(); + Ice.Optional<double[]> p2 = initial.opDoubleSeqOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new double[100]); + java.util.Arrays.fill(p1.get(), 1.0); + p2 = initial.opDoubleSeqOpt(p1, p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + Ice.AsyncResult r = initial.begin_opDoubleSeqOpt(p1); + p2 = initial.end_opDoubleSeqOpt(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + p2 = initial.opDoubleSeq(p1.get(), p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + r = initial.begin_opDoubleSeq(p1.get()); + p2 = initial.end_opDoubleSeq(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + + p2 = initial.opDoubleSeqOpt(new Ice.Optional<double[]>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeSize(p1.get().length * 8 + (p1.get().length > 254 ? 5 : 1)); + os.writeDoubleSeq(p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opDoubleSeq", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + in.skipSize(); + test(java.util.Arrays.equals(in.readDoubleSeq(), p1.get())); + test(in.readOptional(3, Ice.OptionalType.VSize)); + in.skipSize(); + test(java.util.Arrays.equals(in.readDoubleSeq(), p1.get())); in.endEncapsulation(); in = Ice.Util.createInputStream(communicator, outEncaps.value); @@ -787,15 +1434,23 @@ public class AllTests { Ice.Optional<String[]> p1 = new Ice.Optional<String[]>(); Ice.Optional<String[]> p3 = new Ice.Optional<String[]>(); - Ice.Optional<String[]> p2 = initial.opStringSeq(p1, p3); + Ice.Optional<String[]> p2 = initial.opStringSeqOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); p1.set(new String[10]); java.util.Arrays.fill(p1.get(), "test1"); - p2 = initial.opStringSeq(p1, p3); + p2 = initial.opStringSeqOpt(p1, p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + Ice.AsyncResult r = initial.begin_opStringSeqOpt(p1); + p2 = initial.end_opStringSeqOpt(p3, r); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + p2 = initial.opStringSeq(p1.get(), p3); + test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); + r = initial.begin_opStringSeq(p1.get()); + p2 = initial.end_opStringSeq(p3, r); test(java.util.Arrays.equals(p2.get(), p1.get()) && java.util.Arrays.equals(p3.get(), p1.get())); - p2 = initial.opStringSeq(new Ice.Optional<String[]>(), p3); + p2 = initial.opStringSeqOpt(new Ice.Optional<String[]>(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); @@ -823,9 +1478,127 @@ public class AllTests } { + Ice.Optional<SmallStruct[]> p1 = new Ice.Optional<SmallStruct[]>(); + Ice.Optional<SmallStruct[]> p3 = new Ice.Optional<SmallStruct[]>(); + Ice.Optional<SmallStruct[]> p2 = initial.opSmallStructSeqOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new SmallStruct[10]); + for(int i = 0; i < p1.get().length; ++i) + { + p1.get()[i] = new SmallStruct(); + } + p2 = initial.opSmallStructSeqOpt(p1, p3); + for(int i = 0; i < p1.get().length; ++i) + { + test(p2.get()[i].equals(p1.get()[i])); + } + Ice.AsyncResult r = initial.begin_opSmallStructSeqOpt(p1); + p2 = initial.end_opSmallStructSeqOpt(p3, r); + for(int i = 0; i < p1.get().length; ++i) + { + test(p2.get()[i].equals(p1.get()[i])); + } + p2 = initial.opSmallStructSeq(p1.get(), p3); + for(int i = 0; i < p1.get().length; ++i) + { + test(p2.get()[i].equals(p1.get()[i])); + } + r = initial.begin_opSmallStructSeq(p1.get()); + p2 = initial.end_opSmallStructSeq(p3, r); + for(int i = 0; i < p1.get().length; ++i) + { + test(p2.get()[i].equals(p1.get()[i])); + } + + p2 = initial.opSmallStructSeqOpt(new Ice.Optional<SmallStruct[]>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeSize(p1.get().length + (p1.get().length > 254 ? 5 : 1)); + SmallStructSeqHelper.write(os, p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opSmallStructSeq", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + in.skipSize(); + SmallStruct[] arr = SmallStructSeqHelper.read(in); + for(int i = 0; i < p1.get().length; ++i) + { + test(arr[i].equals(p1.get()[i])); + } + test(in.readOptional(3, Ice.OptionalType.VSize)); + in.skipSize(); + arr = SmallStructSeqHelper.read(in); + for(int i = 0; i < p1.get().length; ++i) + { + test(arr[i].equals(p1.get()[i])); + } + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.Optional<java.util.List<SmallStruct>> p1 = new Ice.Optional<java.util.List<SmallStruct>>(); + Ice.Optional<java.util.List<SmallStruct>> p3 = new Ice.Optional<java.util.List<SmallStruct>>(); + Ice.Optional<java.util.List<SmallStruct>> p2 = initial.opSmallStructListOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new java.util.ArrayList<SmallStruct>()); + for(int i = 0; i < 10; ++i) + { + p1.get().add(new SmallStruct()); + } + p2 = initial.opSmallStructListOpt(p1, p3); + test(p2.get().equals(p1.get())); + Ice.AsyncResult r = initial.begin_opSmallStructListOpt(p1); + p2 = initial.end_opSmallStructListOpt(p3, r); + test(p2.get().equals(p1.get())); + p2 = initial.opSmallStructList(p1.get(), p3); + test(p2.get().equals(p1.get())); + r = initial.begin_opSmallStructList(p1.get()); + p2 = initial.end_opSmallStructList(p3, r); + test(p2.get().equals(p1.get())); + + p2 = initial.opSmallStructListOpt(new Ice.Optional<java.util.List<SmallStruct>>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeSize(p1.get().size() + (p1.get().size() > 254 ? 5 : 1)); + SmallStructListHelper.write(os, p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opSmallStructList", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + in.skipSize(); + java.util.List<SmallStruct> arr = SmallStructListHelper.read(in); + test(arr.equals(p1.get())); + test(in.readOptional(3, Ice.OptionalType.VSize)); + in.skipSize(); + arr = SmallStructListHelper.read(in); + test(arr.equals(p1.get())); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { Ice.Optional<FixedStruct[]> p1 = new Ice.Optional<FixedStruct[]>(); Ice.Optional<FixedStruct[]> p3 = new Ice.Optional<FixedStruct[]>(); - Ice.Optional<FixedStruct[]> p2 = initial.opFixedStructSeq(p1, p3); + Ice.Optional<FixedStruct[]> p2 = initial.opFixedStructSeqOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); p1.set(new FixedStruct[10]); @@ -833,13 +1606,30 @@ public class AllTests { p1.get()[i] = new FixedStruct(); } - p2 = initial.opFixedStructSeq(p1, p3); + p2 = initial.opFixedStructSeqOpt(p1, p3); + for(int i = 0; i < p1.get().length; ++i) + { + test(p2.get()[i].equals(p1.get()[i])); + } + Ice.AsyncResult r = initial.begin_opFixedStructSeqOpt(p1); + p2 = initial.end_opFixedStructSeqOpt(p3, r); + for(int i = 0; i < p1.get().length; ++i) + { + test(p2.get()[i].equals(p1.get()[i])); + } + p2 = initial.opFixedStructSeq(p1.get(), p3); + for(int i = 0; i < p1.get().length; ++i) + { + test(p2.get()[i].equals(p1.get()[i])); + } + r = initial.begin_opFixedStructSeq(p1.get()); + p2 = initial.end_opFixedStructSeq(p3, r); for(int i = 0; i < p1.get().length; ++i) { test(p2.get()[i].equals(p1.get()[i])); } - p2 = initial.opFixedStructSeq(new Ice.Optional<FixedStruct[]>(), p3); + p2 = initial.opFixedStructSeqOpt(new Ice.Optional<FixedStruct[]>(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); @@ -874,9 +1664,59 @@ public class AllTests } { + Ice.Optional<java.util.List<FixedStruct>> p1 = new Ice.Optional<java.util.List<FixedStruct>>(); + Ice.Optional<java.util.List<FixedStruct>> p3 = new Ice.Optional<java.util.List<FixedStruct>>(); + Ice.Optional<java.util.List<FixedStruct>> p2 = initial.opFixedStructListOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new java.util.ArrayList<FixedStruct>()); + for(int i = 0; i < 10; ++i) + { + p1.get().add(new FixedStruct()); + } + p2 = initial.opFixedStructListOpt(p1, p3); + test(p2.get().equals(p1.get())); + Ice.AsyncResult r = initial.begin_opFixedStructListOpt(p1); + p2 = initial.end_opFixedStructListOpt(p3, r); + test(p2.get().equals(p1.get())); + p2 = initial.opFixedStructList(p1.get(), p3); + test(p2.get().equals(p1.get())); + r = initial.begin_opFixedStructList(p1.get()); + p2 = initial.end_opFixedStructList(p3, r); + test(p2.get().equals(p1.get())); + + p2 = initial.opFixedStructListOpt(new Ice.Optional<java.util.List<FixedStruct>>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeSize(p1.get().size() * 4 + (p1.get().size() > 254 ? 5 : 1)); + FixedStructListHelper.write(os, p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opFixedStructList", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + in.skipSize(); + java.util.List<FixedStruct> arr = FixedStructListHelper.read(in); + test(arr.equals(p1.get())); + test(in.readOptional(3, Ice.OptionalType.VSize)); + in.skipSize(); + arr = FixedStructListHelper.read(in); + test(arr.equals(p1.get())); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { Ice.Optional<VarStruct[]> p1 = new Ice.Optional<VarStruct[]>(); Ice.Optional<VarStruct[]> p3 = new Ice.Optional<VarStruct[]>(); - Ice.Optional<VarStruct[]> p2 = initial.opVarStructSeq(p1, p3); + Ice.Optional<VarStruct[]> p2 = initial.opVarStructSeqOpt(p1, p3); test(!p2.isSet() && !p3.isSet()); p1.set(new VarStruct[10]); @@ -884,13 +1724,30 @@ public class AllTests { p1.get()[i] = new VarStruct(""); } - p2 = initial.opVarStructSeq(p1, p3); + p2 = initial.opVarStructSeqOpt(p1, p3); + for(int i = 0; i < p1.get().length; ++i) + { + test(p2.get()[i].equals(p1.get()[i])); + } + Ice.AsyncResult r = initial.begin_opVarStructSeqOpt(p1); + p2 = initial.end_opVarStructSeqOpt(p3, r); + for(int i = 0; i < p1.get().length; ++i) + { + test(p2.get()[i].equals(p1.get()[i])); + } + p2 = initial.opVarStructSeq(p1.get(), p3); + for(int i = 0; i < p1.get().length; ++i) + { + test(p2.get()[i].equals(p1.get()[i])); + } + r = initial.begin_opVarStructSeq(p1.get()); + p2 = initial.end_opVarStructSeq(p3, r); for(int i = 0; i < p1.get().length; ++i) { test(p2.get()[i].equals(p1.get()[i])); } - p2 = initial.opVarStructSeq(new Ice.Optional<VarStruct[]>(), p3); + p2 = initial.opVarStructSeqOpt(new Ice.Optional<VarStruct[]>(), p3); test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. os = Ice.Util.createOutputStream(communicator); @@ -924,6 +1781,146 @@ public class AllTests in.startEncapsulation(); in.endEncapsulation(); } + + { + Ice.Optional<SerializableClass> p1 = new Ice.Optional<SerializableClass>(); + Ice.Optional<SerializableClass> p3 = new Ice.Optional<SerializableClass>(); + Ice.Optional<SerializableClass> p2 = initial.opSerializableOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new SerializableClass(58)); + p2 = initial.opSerializableOpt(p1, p3); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + Ice.AsyncResult r = initial.begin_opSerializableOpt(p1); + p2 = initial.end_opSerializableOpt(p3, r); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + p2 = initial.opSerializable(p1.get(), p3); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + r = initial.begin_opSerializable(p1.get()); + p2 = initial.end_opSerializable(p3, r); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + + p2 = initial.opSerializableOpt(new Ice.Optional<SerializableClass>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeSerializable(p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opSerializable", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + SerializableClass sc = SerializableHelper.read(in); + test(sc.equals(p1.get())); + test(in.readOptional(3, Ice.OptionalType.VSize)); + sc = SerializableHelper.read(in); + test(sc.equals(p1.get())); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.Optional<java.util.Map<Integer, Integer>> p1 = new Ice.Optional<java.util.Map<Integer, Integer>>(); + Ice.Optional<java.util.Map<Integer, Integer>> p3 = new Ice.Optional<java.util.Map<Integer, Integer>>(); + Ice.Optional<java.util.Map<Integer, Integer>> p2 = initial.opIntIntDictOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new java.util.HashMap<Integer, Integer>()); + p1.get().put(1, 2); + p1.get().put(2, 3); + p2 = initial.opIntIntDictOpt(p1, p3); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + Ice.AsyncResult r = initial.begin_opIntIntDictOpt(p1); + p2 = initial.end_opIntIntDictOpt(p3, r); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + p2 = initial.opIntIntDict(p1.get(), p3); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + r = initial.begin_opIntIntDict(p1.get()); + p2 = initial.end_opIntIntDict(p3, r); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + + p2 = initial.opIntIntDictOpt(new Ice.Optional<java.util.Map<Integer, Integer>>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.VSize); + os.writeSize(p1.get().size() * 8 + (p1.get().size() > 254 ? 5 : 1)); + IntIntDictHelper.write(os, p1.get()); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opIntIntDict", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.VSize)); + in.skipSize(); + java.util.Map<Integer, Integer> m = IntIntDictHelper.read(in); + test(m.equals(p1.get())); + test(in.readOptional(3, Ice.OptionalType.VSize)); + in.skipSize(); + m = IntIntDictHelper.read(in); + test(m.equals(p1.get())); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } + + { + Ice.Optional<java.util.Map<String, Integer>> p1 = new Ice.Optional<java.util.Map<String, Integer>>(); + Ice.Optional<java.util.Map<String, Integer>> p3 = new Ice.Optional<java.util.Map<String, Integer>>(); + Ice.Optional<java.util.Map<String, Integer>> p2 = initial.opStringIntDictOpt(p1, p3); + test(!p2.isSet() && !p3.isSet()); + + p1.set(new java.util.HashMap<String, Integer>()); + p1.get().put("1", 1); + p1.get().put("2", 2); + p2 = initial.opStringIntDictOpt(p1, p3); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + Ice.AsyncResult r = initial.begin_opStringIntDictOpt(p1); + p2 = initial.end_opStringIntDictOpt(p3, r); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + p2 = initial.opStringIntDict(p1.get(), p3); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + r = initial.begin_opStringIntDict(p1.get()); + p2 = initial.end_opStringIntDict(p3, r); + test(p2.get().equals(p1.get()) && p3.get().equals(p1.get())); + + p2 = initial.opStringIntDictOpt(new Ice.Optional<java.util.Map<String, Integer>>(), p3); + test(!p2.isSet() && !p3.isSet()); // Ensure out parameter is cleared. + + os = Ice.Util.createOutputStream(communicator); + os.startEncapsulation(); + os.writeOptional(2, Ice.OptionalType.FSize); + os.startSize(); + StringIntDictHelper.write(os, p1.get()); + os.endSize(); + os.endEncapsulation(); + inEncaps = os.finished(); + initial.ice_invoke("opStringIntDict", Ice.OperationMode.Normal, inEncaps, outEncaps); + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + test(in.readOptional(1, Ice.OptionalType.FSize)); + in.skip(4); + java.util.Map<String, Integer> m = StringIntDictHelper.read(in); + test(m.equals(p1.get())); + test(in.readOptional(3, Ice.OptionalType.FSize)); + in.skip(4); + m = StringIntDictHelper.read(in); + test(m.equals(p1.get())); + in.endEncapsulation(); + + in = Ice.Util.createInputStream(communicator, outEncaps.value); + in.startEncapsulation(); + in.endEncapsulation(); + } out.println("ok"); out.print("testing exception optionals... "); @@ -931,7 +1928,7 @@ public class AllTests { try { - Ice.Optional<Integer> a = new Ice.Optional<Integer>(); + Ice.IntOptional a = new Ice.IntOptional(); Ice.Optional<String> b = new Ice.Optional<String>(); Ice.Optional<OneOptional> o = new Ice.Optional<OneOptional>(); initial.opOptionalException(a, b, o); @@ -945,7 +1942,7 @@ public class AllTests try { - Ice.Optional<Integer> a = new Ice.Optional<Integer>(30); + Ice.IntOptional a = new Ice.IntOptional(30); Ice.Optional<String> b = new Ice.Optional<String>("test"); Ice.Optional<OneOptional> o = new Ice.Optional<OneOptional>(new OneOptional(53)); initial.opOptionalException(a, b, o); |