Beispiel #1
0
        internal static void oneways(global::Test.TestHelper helper, Test.IMyClassPrx p)
        {
            Communicator communicator = helper.communicator();

            p = p.Clone(oneway: true);

            {
                p.IcePing();
            }

            {
                p.opVoid();
            }

            {
                p.opIdempotent();
            }

            {
                p.opNonmutating();
            }

            {
                try
                {
                    var(b1, b2) = p.opByte(0xff, 0x0f);
                    test(false);
                }
                catch (TwowayOnlyException)
                {
                }
            }
        }
Beispiel #2
0
 public Test.MyClass.OpMyClassReturnValue opMyClass(Test.IMyClassPrx p1, Current current)
 {
     return(new Test.MyClass.OpMyClassReturnValue(
                Test.IMyClassPrx.UncheckedCast(current.Adapter.CreateProxy(current.Id)),
                p1,
                Test.IMyClassPrx.UncheckedCast(current.Adapter.CreateProxy("noSuchIdentity"))));
 }
Beispiel #3
0
                opMyClassAsync(Test.IMyClassPrx p1, Current current)
                {
                    var p2 = p1;
                    var p3 = Test.IMyClassPrx.UncheckedCast(current.Adapter.CreateProxy("noSuchIdentity"));

                    return(Task.FromResult(new Test.MyClass.OpMyClassReturnValue(
                                               Test.IMyClassPrx.UncheckedCast(current.Adapter.CreateProxy(current.Id)), p2, p3)));
                }
Beispiel #4
0
        opMyClassAsync(Test.IMyClassPrx p1, Current current)
        {
            var p2 = p1;
            var p3 = current.Adapter.CreateProxy("noSuchIdentity", Test.IMyClassPrx.Factory);

            return(Task.FromResult(new Test.IMyClass.OpMyClassReturnValue(
                                       current.Adapter.CreateProxy(current.Id, Test.IMyClassPrx.Factory), p2, p3)));
        }
Beispiel #5
0
 internal static void oneways(global::Test.TestHelper helper, Test.IMyClassPrx p)
 {
     p = p.Clone(oneway: true);
     p.IcePing();
     p.opVoid();
     p.opIdempotent();
     p.opOneway();
     p.opByte(0xff, 0x0f);
 }
Beispiel #6
0
 internal static void oneways(Test.IMyClassPrx p)
 {
     p = p.Clone(oneway: true);
     p.IcePing();
     p.opVoid();
     p.opIdempotent();
     p.opOneway();
     p.opOnewayMetadata();
     p.opByte(0xff, 0x0f);
 }
Beispiel #7
0
        internal static void onewaysAMI(global::Test.TestHelper helper, Test.IMyClassPrx proxy)
        {
            Communicator communicator = helper.communicator();

            Test.IMyClassPrx p = proxy.Clone(oneway: true);

            {
                Callback cb = new Callback();
                p.IcePingAsync(progress: new Progress <bool>(
                                   sentSynchronously =>
                {
                    cb.sent(sentSynchronously);
                }));
                cb.check();
            }

            bool   b  = p.IceIsAAsync("::Test::MyClass").Result;
            string id = p.IceIdAsync().Result;

            string[] ids = p.IceIdsAsync().Result;

            {
                Callback cb = new Callback();
                p.opVoidAsync(progress: new Progress <bool>(
                                  sentSynchronously =>
                {
                    cb.sent(sentSynchronously);
                }));
                cb.check();
            }

            {
                Callback cb = new Callback();
                p.opIdempotentAsync(progress: new Progress <bool>(
                                        sentSynchronously =>
                {
                    cb.sent(sentSynchronously);
                }));
                cb.check();
            }

            {
                Callback cb = new Callback();
                p.opOnewayAsync(progress: new Progress <bool>(
                                    sentSynchronously =>
                {
                    cb.sent(sentSynchronously);
                }));
                cb.check();
            }

            var _ = p.opByteAsync(0xff, 0x0f).Result;
        }
Beispiel #8
0
        internal static void twowaysAMI(Communicator communicator, Test.IMyClassPrx p)
        {
            {
                Dictionary <int, int> i = new Dictionary <int, int>();
                i[0] = 1;
                i[1] = 0;

                var r = p.opNVAsync(i).Result;
                test(r.o.DictionaryEquals(i));
                test(r.returnValue.DictionaryEquals(i));
            }

            {
                Dictionary <string, string> i = new Dictionary <string, string>();
                i["a"] = "b";
                i["b"] = "a";

                var r = p.opNRAsync(i).Result;
                test(r.o.DictionaryEquals(i));
                test(r.returnValue.DictionaryEquals(i));
            }

            {
                Dictionary <string, Dictionary <int, int> > i = new Dictionary <string, Dictionary <int, int> >();
                Dictionary <int, int> id = new Dictionary <int, int>();
                id[0]  = 1;
                id[1]  = 0;
                i["a"] = id;
                i["b"] = id;

                var r = p.opNDVAsync(i).Result;
                test(r.o.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.DictionaryEquals(rhs));
                }));
                test(r.returnValue.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.DictionaryEquals(rhs));
                }));
            }

            {
                Dictionary <string, Dictionary <string, string> > i = new Dictionary <string, Dictionary <string, string> >();
                Dictionary <string, string> id = new Dictionary <string, string>();
                id["a"] = "b";
                id["b"] = "a";
                i["a"]  = id;
                i["b"]  = id;

                var r = p.opNDRAsync(i).Result;
                test(r.o.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.DictionaryEquals(rhs));
                }));
                test(r.returnValue.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.DictionaryEquals(rhs));
                }));
            }

            {
                int[] ii = new int[] { 1, 2 };
                Dictionary <string, int[]> i = new Dictionary <string, int[]>();
                i["a"] = ii;
                i["b"] = ii;

                var r = p.opNDAISAsync(i).Result;
                test(r.o.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.SequenceEqual(rhs));
                }));
                test(r.returnValue.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.SequenceEqual(rhs));
                }));
            }

            {
                List <int> ii = new List <int>();
                ii.Add(1);
                ii.Add(2);
                Dictionary <string, List <int> > i = new Dictionary <string, List <int> >();
                i["a"] = ii;
                i["b"] = ii;

                var r = p.opNDGISAsync(i).Result;
                test(r.o.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.SequenceEqual(rhs));
                }));
                test(r.returnValue.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.SequenceEqual(rhs));
                }));
            }

            {
                string[] ii = new string[] { "a", "b" };
                Dictionary <string, string[]> i = new Dictionary <string, string[]>();
                i["a"] = ii;
                i["b"] = ii;

                var r = p.opNDASSAsync(i).Result;
                test(r.o.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.SequenceEqual(rhs));
                }));
                test(r.returnValue.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.SequenceEqual(rhs));
                }));
            }

            {
                List <string> ii = new List <string>();
                ii.Add("a");
                ii.Add("b");
                Dictionary <string, List <string> > i = new Dictionary <string, List <string> >();
                i["a"] = ii;
                i["b"] = ii;

                var r = p.opNDGSSAsync(i).Result;
                test(r.o.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.SequenceEqual(rhs));
                }));
                test(r.returnValue.DictionaryEquals(i, (lhs, rhs) =>
                {
                    return(lhs.SequenceEqual(rhs));
                }));
            }
        }
Beispiel #9
0
        public static Test.IMyClassPrx allTests(global::Test.TestHelper helper)
        {
            var communicator = helper.communicator();
            var output       = helper.getWriter();

            output.Write("testing stringToProxy... ");
            output.Flush();
            string rf        = "test:" + helper.getTestEndpoint(0);
            var    baseProxy = IObjectPrx.Parse(rf, communicator);

            test(baseProxy != null);

            var b1 = IObjectPrx.Parse("test", communicator);

            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.AdapterId.Length == 0 && b1.Facet.Length == 0);
            b1 = IObjectPrx.Parse("test ", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Length == 0);
            b1 = IObjectPrx.Parse(" test ", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Length == 0);
            b1 = IObjectPrx.Parse(" test", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Length == 0);
            b1 = IObjectPrx.Parse("'test -f facet'", communicator);
            test(b1.Identity.Name.Equals("test -f facet") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Length == 0);
            try
            {
                b1 = IObjectPrx.Parse("\"test -f facet'", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }
            b1 = IObjectPrx.Parse("\"test -f facet\"", communicator);
            test(b1.Identity.Name.Equals("test -f facet") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Length == 0);
            b1 = IObjectPrx.Parse("\"test -f facet@test\"", communicator);
            test(b1.Identity.Name.Equals("test -f facet@test") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Length == 0);
            b1 = IObjectPrx.Parse("\"test -f facet@test @test\"", communicator);
            test(b1.Identity.Name.Equals("test -f facet@test @test") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Length == 0);
            try
            {
                b1 = IObjectPrx.Parse("test test", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }
            b1 = IObjectPrx.Parse("test\\040test", communicator);
            test(b1.Identity.Name.Equals("test test") && b1.Identity.Category.Length == 0);
            try
            {
                b1 = IObjectPrx.Parse("test\\777", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }
            b1 = IObjectPrx.Parse("test\\40test", communicator);
            test(b1.Identity.Name.Equals("test test"));

            // Test some octal and hex corner cases.
            b1 = IObjectPrx.Parse("test\\4test", communicator);
            test(b1.Identity.Name.Equals("test\u0004test"));
            b1 = IObjectPrx.Parse("test\\04test", communicator);
            test(b1.Identity.Name.Equals("test\u0004test"));
            b1 = IObjectPrx.Parse("test\\004test", communicator);
            test(b1.Identity.Name.Equals("test\u0004test"));
            b1 = IObjectPrx.Parse("test\\1114test", communicator);
            test(b1.Identity.Name.Equals("test\u00494test"));

            b1 = IObjectPrx.Parse("test\\b\\f\\n\\r\\t\\'\\\"\\\\test", communicator);
            test(b1.Identity.Name.Equals("test\b\f\n\r\t\'\"\\test") && b1.Identity.Category.Length == 0);

            b1 = IObjectPrx.Parse("category/test", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Equals("category") &&
                 b1.AdapterId.Length == 0);

            b1 = IObjectPrx.Parse("test:tcp --sourceAddress \"::1\"", communicator);
            test(b1.Equals(IObjectPrx.Parse(b1.ToString(), communicator)));

            b1 = IObjectPrx.Parse("test:udp --sourceAddress \"::1\" --interface \"0:0:0:0:0:0:0:1%lo\"", communicator);
            test(b1.Equals(IObjectPrx.Parse(b1.ToString(), communicator)));

            try
            {
                b1 = IObjectPrx.Parse("", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                b1 = IObjectPrx.Parse("\"\"", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                b1 = IObjectPrx.Parse("\"\" test", communicator); // Invalid trailing characters.
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                b1 = IObjectPrx.Parse("test:", communicator); // Missing endpoint.
                test(false);
            }
            catch (FormatException)
            {
            }

            b1 = IObjectPrx.Parse("test@adapter", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.AdapterId.Equals("adapter"));
            try
            {
                b1 = IObjectPrx.Parse("id@adapter test", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }
            b1 = IObjectPrx.Parse("category/test@adapter", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Equals("category") &&
                 b1.AdapterId.Equals("adapter"));
            b1 = IObjectPrx.Parse("category/test@adapter:tcp", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Equals("category") &&
                 b1.AdapterId.Equals("adapter:tcp"));
            b1 = IObjectPrx.Parse("'category 1/test'@adapter", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Equals("category 1") &&
                 b1.AdapterId.Equals("adapter"));
            b1 = IObjectPrx.Parse("'category/test 1'@adapter", communicator);
            test(b1.Identity.Name.Equals("test 1") && b1.Identity.Category.Equals("category") &&
                 b1.AdapterId.Equals("adapter"));
            b1 = IObjectPrx.Parse("'category/test'@'adapter 1'", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Equals("category") &&
                 b1.AdapterId.Equals("adapter 1"));
            b1 = IObjectPrx.Parse("\"category \\/test@foo/test\"@adapter", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Equals("category /test@foo") &&
                 b1.AdapterId.Equals("adapter"));
            b1 = IObjectPrx.Parse("\"category \\/test@foo/test\"@\"adapter:tcp\"", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Equals("category /test@foo") &&
                 b1.AdapterId.Equals("adapter:tcp"));

            b1 = IObjectPrx.Parse("id -f facet", communicator);
            test(b1.Identity.Name.Equals("id") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Equals("facet"));
            b1 = IObjectPrx.Parse("id -f 'facet x'", communicator);
            test(b1.Identity.Name.Equals("id") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Equals("facet x"));
            b1 = IObjectPrx.Parse("id -f \"facet x\"", communicator);
            test(b1.Identity.Name.Equals("id") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Equals("facet x"));
            try
            {
                b1 = IObjectPrx.Parse("id -f \"facet x", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }
            try
            {
                b1 = IObjectPrx.Parse("id -f \'facet x", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }
            b1 = IObjectPrx.Parse("test -f facet:tcp", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Equals("facet") && b1.AdapterId.Length == 0);
            b1 = IObjectPrx.Parse("test -f \"facet:tcp\"", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Equals("facet:tcp") && b1.AdapterId.Length == 0);
            b1 = IObjectPrx.Parse("test -f facet@test", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Equals("facet") && b1.AdapterId.Equals("test"));
            b1 = IObjectPrx.Parse("test -f 'facet@test'", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Equals("facet@test") && b1.AdapterId.Length == 0);
            b1 = IObjectPrx.Parse("test -f 'facet@test'@test", communicator);
            test(b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.Facet.Equals("facet@test") && b1.AdapterId.Equals("test"));
            try
            {
                b1 = IObjectPrx.Parse("test -f facet@test @test", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }
            b1 = IObjectPrx.Parse("test", communicator);
            test(!b1.IsOneway);
            b1 = IObjectPrx.Parse("test -t", communicator);
            test(!b1.IsOneway);
            b1 = IObjectPrx.Parse("test -o", communicator);
            test(b1.IsOneway);
            b1 = IObjectPrx.Parse("test -O", communicator);
            test(b1.InvocationMode == InvocationMode.BatchOneway);
            b1 = IObjectPrx.Parse("test -d", communicator);
            test(b1.InvocationMode == InvocationMode.Datagram);
            b1 = IObjectPrx.Parse("test -D", communicator);
            test(b1.InvocationMode == InvocationMode.BatchDatagram);
            b1 = IObjectPrx.Parse("test", communicator);
            test(!b1.IsSecure);
            b1 = IObjectPrx.Parse("test -s", communicator);
            test(b1.IsSecure);

            test(b1.Encoding.Equals(Encoding.Latest));

            b1 = IObjectPrx.Parse("test -e 1.0", communicator);
            test(b1.Encoding.Major == 1 && b1.Encoding.Minor == 0);

            b1 = IObjectPrx.Parse("test -e 6.5", communicator);
            test(b1.Encoding.Major == 6 && b1.Encoding.Minor == 5);

            b1 = IObjectPrx.Parse("test -p ice1 -e 1.0", communicator);
            test(b1.ToString().Equals("test -t -p ice1 -e 1.0"));

            b1 = IObjectPrx.Parse("test -p 1.0 -e 1.0", communicator);
            test(b1.ToString().Equals("test -t -p ice1 -e 1.0"));

            b1 = IObjectPrx.Parse("test -p ice2 -e 1.0", communicator);
            test(b1.ToString().Equals("test -t -p ice2 -e 1.0"));

            b1 = IObjectPrx.Parse("test -p 2.0 -e 1.0", communicator);
            test(b1.ToString().Equals("test -t -p ice2 -e 1.0"));

            b1 = IObjectPrx.Parse("test -p 6 -e 1.0", communicator);
            test(b1.ToString().Equals("test -t -p 6 -e 1.0"));

            b1 = IObjectPrx.Parse("test -p 6.0 -e 1.0", communicator);
            test(b1.ToString().Equals("test -t -p 6 -e 1.0"));

            try
            {
                IObjectPrx.Parse("test:tcp@adapterId", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }
            // This is an unknown endpoint warning, not a parse exception.
            //
            //try
            //{
            //   b1 = communicator.stringToProxy("test -f the:facet:tcp");
            //   test(false);
            //}
            //catch(EndpointParseException)
            //{
            //}
            try
            {
                IObjectPrx.Parse("test: :tcp", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            //
            // Test invalid endpoint syntax
            //
            try
            {
                communicator.CreateObjectAdapterWithEndpoints("BadAdapter", " : ");
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                communicator.CreateObjectAdapterWithEndpoints("BadAdapter", "tcp: ");
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                communicator.CreateObjectAdapterWithEndpoints("BadAdapter", ":tcp");
                test(false);
            }
            catch (FormatException)
            {
            }

            //
            // Test for bug ICE-5543: escaped escapes in stringToIdentity
            //
            var id  = new Identity("test", ",X2QNUAzSBcJ_e$AV;E\\");
            var id2 = Identity.Parse(id.ToString(communicator.ToStringMode));

            test(id.Equals(id2));

            id  = new Identity("test", ",X2QNUAz\\SB\\/cJ_e$AV;E\\\\");
            id2 = Identity.Parse(id.ToString(communicator.ToStringMode));
            test(id.Equals(id2));

            id = new Identity("/test", "cat/");
            string idStr = id.ToString(communicator.ToStringMode);

            test(idStr == "cat\\//\\/test");
            id2 = Identity.Parse(idStr);
            test(id.Equals(id2));

            // Input string with various pitfalls
            id = Identity.Parse("\\342\\x82\\254\\60\\x9\\60\\");
            test(id.Name == "€0\t0\\" && id.Category == "");

            try
            {
                // Illegal character < 32
                id = Identity.Parse("xx\01FooBar");
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Illegal surrogate
                id = Identity.Parse("xx\\ud911");
                test(false);
            }
            catch (FormatException)
            {
            }

            // Testing bytes 127(\x7F, \177) and €
            id = new Identity("test", "\x7f€");

            idStr = id.ToString(ToStringMode.Unicode);
            test(idStr == "\\u007f€/test");
            id2 = Identity.Parse(idStr);
            test(id.Equals(id2));
            test(id.ToString() == idStr);

            idStr = id.ToString(ToStringMode.ASCII);
            test(idStr == "\\u007f\\u20ac/test");
            id2 = Identity.Parse(idStr);
            test(id.Equals(id2));

            idStr = id.ToString(ToStringMode.Compat);
            test(idStr == "\\177\\342\\202\\254/test");
            id2 = Identity.Parse(idStr);
            test(id.Equals(id2));

            id2 = Identity.Parse(id.ToString(communicator.ToStringMode));
            test(id.Equals(id2));

            // More unicode character
            id = new Identity("banana \x0E-\ud83c\udf4c\u20ac\u00a2\u0024", "greek \ud800\udd6a");

            idStr = id.ToString(ToStringMode.Unicode);
            test(idStr == "greek \ud800\udd6a/banana \\u000e-\ud83c\udf4c\u20ac\u00a2$");
            id2 = Identity.Parse(idStr);
            test(id.Equals(id2));

            idStr = id.ToString(ToStringMode.ASCII);
            test(idStr == "greek \\U0001016a/banana \\u000e-\\U0001f34c\\u20ac\\u00a2$");
            id2 = Identity.Parse(idStr);
            test(id.Equals(id2));

            idStr = id.ToString(ToStringMode.Compat);
            id2   = Identity.Parse(idStr);
            test(idStr == "greek \\360\\220\\205\\252/banana \\016-\\360\\237\\215\\214\\342\\202\\254\\302\\242$");
            test(id.Equals(id2));

            output.WriteLine("ok");

            output.Write("testing proxyToString... ");
            output.Flush();
            b1 = IObjectPrx.Parse(rf, communicator);
            var b2 = IObjectPrx.Parse(b1.ToString(), communicator);

            test(b1.Equals(b2));

            if (b1.GetConnection() != null) // not colloc-optimized target
            {
                b2 = b1.GetConnection().CreateProxy(Identity.Parse("fixed"), IObjectPrx.Factory);
                string str = b2.ToString();
                test(b2.ToString() == str);
                string str2 = b1.Clone(b2.Identity, IObjectPrx.Factory).Clone(secure: b2.IsSecure).ToString();

                // Verify that the stringified fixed proxy is the same as a regular stringified proxy
                // but without endpoints
                test(str2.StartsWith(str));
                test(str2[str.Length] == ':');
            }
            output.WriteLine("ok");

            output.Write("testing propertyToProxy... ");
            output.Flush();

            string propertyPrefix = "Foo.Proxy";

            communicator.SetProperty(propertyPrefix, "test:" + helper.getTestEndpoint(0));
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1 != null &&
                 b1.Identity.Name.Equals("test") && b1.Identity.Category.Length == 0 &&
                 b1.AdapterId.Length == 0 && b1.Facet.Length == 0);

            string property;

            property = propertyPrefix + ".Locator";
            test(b1.Locator == null);
            communicator.SetProperty(property, "locator:default -p 10000");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1 != null && b1.Locator != null && b1.Locator.Identity.Name.Equals("locator"));
            communicator.SetProperty(property, "");
            property = propertyPrefix + ".LocatorCacheTimeout";
            test(b1.LocatorCacheTimeout == -1);
            communicator.SetProperty(property, "1");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1 != null && b1.LocatorCacheTimeout == 1);
            communicator.SetProperty(property, "");

            // Now retest with an indirect proxy.
            communicator.SetProperty(propertyPrefix, "test");
            property = propertyPrefix + ".Locator";
            communicator.SetProperty(property, "locator:default -p 10000");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1 != null && b1.Locator != null && b1.Locator.Identity.Name.Equals("locator"));
            communicator.SetProperty(property, "");

            property = propertyPrefix + ".LocatorCacheTimeout";
            test(b1.LocatorCacheTimeout == -1);
            communicator.SetProperty(property, "1");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1 != null && b1.LocatorCacheTimeout == 1);
            communicator.SetProperty(property, "");

            // This cannot be tested so easily because the property is cached
            // on communicator initialization.
            //
            //communicator.SetProperty("Default.LocatorCacheTimeout", "60");
            //b1 = communicator.propertyToProxy(propertyPrefix);
            //test(b1.LocatorCacheTimeout == 60);
            //communicator.SetProperty("Default.LocatorCacheTimeout", "");

            communicator.SetProperty(propertyPrefix, "test:" + helper.getTestEndpoint(0));

            property = propertyPrefix + ".Router";
            test(b1.Router == null);
            communicator.SetProperty(property, "router:default -p 10000");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1.Router != null && b1.Router.Identity.Name.Equals("router"));
            communicator.RemoveProperty(property);

            property = propertyPrefix + ".PreferSecure";
            test(!b1.IsPreferSecure);
            communicator.SetProperty(property, "1");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1.IsPreferSecure);
            communicator.RemoveProperty(property);

            property = propertyPrefix + ".ConnectionCached";
            test(b1.IsConnectionCached);
            communicator.SetProperty(property, "0");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(!b1.IsConnectionCached);
            communicator.RemoveProperty(property);

            property = propertyPrefix + ".InvocationTimeout";
            test(b1.InvocationTimeout == -1);
            communicator.SetProperty(property, "1000");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1.InvocationTimeout == 1000);
            communicator.RemoveProperty(property);

            property = propertyPrefix + ".EndpointSelection";
            test(b1.EndpointSelection == EndpointSelectionType.Random);
            communicator.SetProperty(property, "Random");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1.EndpointSelection == EndpointSelectionType.Random);
            communicator.SetProperty(property, "Ordered");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1.EndpointSelection == EndpointSelectionType.Ordered);
            communicator.RemoveProperty(property);

            property = propertyPrefix + ".CollocationOptimized";
            test(b1.IsCollocationOptimized);
            communicator.SetProperty(property, "0");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(!b1.IsCollocationOptimized);
            communicator.RemoveProperty(property);

            property = propertyPrefix + ".Context.c1";
            test(!b1.Context.ContainsKey("c1"));
            communicator.SetProperty(property, "TEST");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1.Context["c1"].Equals("TEST"));

            property = propertyPrefix + ".Context.c2";
            test(!b1.Context.ContainsKey("c2"));
            communicator.SetProperty(property, "TEST");
            b1 = communicator.GetPropertyAsProxy(propertyPrefix, IObjectPrx.Factory);
            test(b1.Context["c2"].Equals("TEST"));

            communicator.SetProperty(propertyPrefix + ".Context.c1", "");
            communicator.SetProperty(propertyPrefix + ".Context.c2", "");

            output.WriteLine("ok");

            output.Write("testing proxyToProperty... ");
            output.Flush();

            var router = IRouterPrx.Parse("router", communicator).Clone(
                collocationOptimized: false,
                cacheConnection: true,
                preferSecure: true,
                endpointSelection: EndpointSelectionType.Random,
                locatorCacheTimeout: 200,
                invocationTimeout: 1500);

            var locator = ILocatorPrx.Parse("locator", communicator).Clone(
                collocationOptimized: true,
                cacheConnection: false,
                preferSecure: true,
                endpointSelection: EndpointSelectionType.Random,
                locatorCacheTimeout: 300,
                invocationTimeout: 1500,
                router: router);

            b1 = IObjectPrx.Parse("test", communicator).Clone(
                collocationOptimized: true,
                cacheConnection: true,
                preferSecure: false,
                endpointSelection: EndpointSelectionType.Ordered,
                locatorCacheTimeout: 100,
                invocationTimeout: 1234,
                encoding: Encoding.V2_0,
                locator: locator);

            Dictionary <string, string> proxyProps = b1.ToProperty("Test");

            test(proxyProps.Count == 21);

            test(proxyProps["Test"].Equals("test -t -p ice1 -e 2.0"));
            test(proxyProps["Test.CollocationOptimized"].Equals("1"));
            test(proxyProps["Test.ConnectionCached"].Equals("1"));
            test(proxyProps["Test.PreferSecure"].Equals("0"));
            test(proxyProps["Test.EndpointSelection"].Equals("Ordered"));
            test(proxyProps["Test.LocatorCacheTimeout"].Equals("100"));
            test(proxyProps["Test.InvocationTimeout"].Equals("1234"));

            test(proxyProps["Test.Locator"].Equals($"locator -t -p ice1 -e {Encoding.V2_0}"));
            // Locator collocation optimization is always disabled.
            //test(proxyProps["Test.Locator.CollocationOptimized"].Equals("1"));
            test(proxyProps["Test.Locator.ConnectionCached"].Equals("0"));
            test(proxyProps["Test.Locator.PreferSecure"].Equals("1"));
            test(proxyProps["Test.Locator.EndpointSelection"].Equals("Random"));
            test(proxyProps["Test.Locator.LocatorCacheTimeout"].Equals("300"));
            test(proxyProps["Test.Locator.InvocationTimeout"].Equals("1500"));

            test(proxyProps["Test.Locator.Router"].Equals(
                     "router -t -p ice1 -e " + Encoding.Latest.ToString()));
            test(proxyProps["Test.Locator.Router.CollocationOptimized"].Equals("0"));
            test(proxyProps["Test.Locator.Router.ConnectionCached"].Equals("1"));
            test(proxyProps["Test.Locator.Router.PreferSecure"].Equals("1"));
            test(proxyProps["Test.Locator.Router.EndpointSelection"].Equals("Random"));
            test(proxyProps["Test.Locator.Router.LocatorCacheTimeout"].Equals("200"));
            test(proxyProps["Test.Locator.Router.InvocationTimeout"].Equals("1500"));

            output.WriteLine("ok");

            output.Write("testing ice_getCommunicator... ");
            output.Flush();
            test(baseProxy.Communicator == communicator);
            output.WriteLine("ok");

            output.Write("testing proxy methods... ");

            test(baseProxy.Clone(facet: "facet", IObjectPrx.Factory).Facet.Equals("facet"));
            test(baseProxy.Clone(adapterId: "id").AdapterId.Equals("id"));
            test(!baseProxy.Clone(invocationMode: InvocationMode.Twoway).IsOneway);
            test(baseProxy.Clone(invocationMode: InvocationMode.Oneway).IsOneway);
            test(baseProxy.Clone(invocationMode: InvocationMode.Datagram).IsOneway);
            test(baseProxy.Clone(invocationMode: InvocationMode.BatchOneway).InvocationMode == InvocationMode.BatchOneway);
            test(baseProxy.Clone(invocationMode: InvocationMode.Datagram).InvocationMode == InvocationMode.Datagram);
            test(baseProxy.Clone(invocationMode: InvocationMode.BatchDatagram).InvocationMode == InvocationMode.BatchDatagram);
            test(baseProxy.Clone(secure: true).IsSecure);
            test(!baseProxy.Clone(secure: false).IsSecure);
            test(baseProxy.Clone(collocationOptimized: true).IsCollocationOptimized);
            test(!baseProxy.Clone(collocationOptimized: false).IsCollocationOptimized);
            test(baseProxy.Clone(preferSecure: true).IsPreferSecure);
            test(!baseProxy.Clone(preferSecure: false).IsPreferSecure);

            try
            {
                baseProxy.Clone(connectionTimeout: 0);
                test(false);
            }
            catch (ArgumentException)
            {
            }

            try
            {
                baseProxy.Clone(connectionTimeout: -1);
            }
            catch (ArgumentException)
            {
                test(false);
            }

            try
            {
                baseProxy.Clone(connectionTimeout: -2);
                test(false);
            }
            catch (ArgumentException)
            {
            }

            try
            {
                baseProxy.Clone(invocationTimeout: 0);
                test(false);
            }
            catch (ArgumentException)
            {
            }

            try
            {
                baseProxy.Clone(invocationTimeout: -1);
            }
            catch (ArgumentException)
            {
                test(false);
            }

            try
            {
                baseProxy.Clone(invocationTimeout: -2);
                test(false);
            }
            catch (ArgumentException)
            {
            }

            try
            {
                baseProxy.Clone(locatorCacheTimeout: 0);
            }
            catch (ArgumentException)
            {
                test(false);
            }

            try
            {
                baseProxy.Clone(locatorCacheTimeout: -1);
            }
            catch (ArgumentException)
            {
                test(false);
            }

            try
            {
                baseProxy.Clone(locatorCacheTimeout: -2);
                test(false);
            }
            catch (ArgumentException)
            {
            }

            output.WriteLine("ok");

            output.Write("testing proxy comparison... ");
            output.Flush();

            test(object.Equals(IObjectPrx.Parse("foo", communicator), IObjectPrx.Parse("foo", communicator)));
            test(!IObjectPrx.Parse("foo", communicator).Equals(IObjectPrx.Parse("foo2", communicator)));

            var compObj = IObjectPrx.Parse("foo", communicator);

            test(compObj.Clone(facet: "facet", IObjectPrx.Factory).Equals(
                     compObj.Clone(facet: "facet", IObjectPrx.Factory)));
            test(!compObj.Clone(facet: "facet", IObjectPrx.Factory).Equals(
                     compObj.Clone(facet: "facet1", IObjectPrx.Factory)));

            test(compObj.Clone(invocationMode: InvocationMode.Oneway).Equals(
                     compObj.Clone(invocationMode: InvocationMode.Oneway)));
            test(!compObj.Clone(invocationMode: InvocationMode.Oneway).Equals(
                     compObj.Clone(invocationMode: InvocationMode.Twoway)));

            test(compObj.Clone(secure: true).Equals(compObj.Clone(secure: true)));
            test(!compObj.Clone(secure: false).Equals(compObj.Clone(secure: true)));

            test(compObj.Clone(collocationOptimized: true).Equals(compObj.Clone(collocationOptimized: true)));
            test(!compObj.Clone(collocationOptimized: false).Equals(compObj.Clone(collocationOptimized: true)));

            test(compObj.Clone(cacheConnection: true).Equals(compObj.Clone(cacheConnection: true)));
            test(!compObj.Clone(cacheConnection: false).Equals(compObj.Clone(cacheConnection: true)));

            test(compObj.Clone(endpointSelection: EndpointSelectionType.Random).Equals(
                     compObj.Clone(endpointSelection: EndpointSelectionType.Random)));
            test(!compObj.Clone(endpointSelection: EndpointSelectionType.Random).Equals(
                     compObj.Clone(endpointSelection: EndpointSelectionType.Ordered)));

            test(compObj.Clone(connectionId: "id2").Equals(compObj.Clone(connectionId: "id2")));
            test(!compObj.Clone(connectionId: "id1").Equals(compObj.Clone(connectionId: "id2")));
            test(compObj.Clone(connectionId: "id1").ConnectionId.Equals("id1"));
            test(compObj.Clone(connectionId: "id2").ConnectionId.Equals("id2"));

            test(compObj.Clone(compress: true).Equals(compObj.Clone(compress: true)));
            test(!compObj.Clone(compress: false).Equals(compObj.Clone(compress: true)));

            test(!compObj.Compress.HasValue);
            test(compObj.Clone(compress: true).Compress.Value == true);
            test(compObj.Clone(compress: false).Compress.Value == false);

            test(compObj.Clone(connectionTimeout: 20).Equals(compObj.Clone(connectionTimeout: 20)));
            test(!compObj.Clone(connectionTimeout: 10).Equals(compObj.Clone(connectionTimeout: 20)));

            test(!compObj.ConnectionTimeout.HasValue);
            test(compObj.Clone(connectionTimeout: 10).ConnectionTimeout.Value == 10);
            test(compObj.Clone(connectionTimeout: 20).ConnectionTimeout.Value == 20);

            ILocatorPrx loc1 = ILocatorPrx.Parse("loc1:default -p 10000", communicator);
            ILocatorPrx loc2 = ILocatorPrx.Parse("loc2:default -p 10000", communicator);

            test(compObj.Clone(clearLocator: true).Equals(compObj.Clone(clearLocator: true)));
            test(compObj.Clone(locator: loc1).Equals(compObj.Clone(locator: loc1)));
            test(!compObj.Clone(locator: loc1).Equals(compObj.Clone(clearLocator: true)));
            test(!compObj.Clone(clearLocator: true).Equals(compObj.Clone(locator: loc2)));
            test(!compObj.Clone(locator: loc1).Equals(compObj.Clone(locator: loc2)));

            IRouterPrx rtr1 = IRouterPrx.Parse("rtr1:default -p 10000", communicator);
            IRouterPrx rtr2 = IRouterPrx.Parse("rtr2:default -p 10000", communicator);

            test(compObj.Clone(clearRouter: true).Equals(compObj.Clone(clearRouter: true)));
            test(compObj.Clone(router: rtr1).Equals(compObj.Clone(router: rtr1)));
            test(!compObj.Clone(router: rtr1).Equals(compObj.Clone(clearRouter: true)));
            test(!compObj.Clone(clearRouter: true).Equals(compObj.Clone(router: rtr2)));
            test(!compObj.Clone(router: rtr1).Equals(compObj.Clone(router: rtr2)));

            Dictionary <string, string> ctx1 = new Dictionary <string, string>();

            ctx1["ctx1"] = "v1";
            Dictionary <string, string> ctx2 = new Dictionary <string, string>();

            ctx2["ctx2"] = "v2";
            test(compObj.Clone(context: new Dictionary <string, string>()).Equals(
                     compObj.Clone(context: new Dictionary <string, string>())));
            test(compObj.Clone(context: ctx1).Equals(compObj.Clone(context: ctx1)));
            test(!compObj.Clone(context: ctx1).Equals(
                     compObj.Clone(context: new Dictionary <string, string>())));
            test(!compObj.Clone(context: new Dictionary <string, string>()).Equals(
                     compObj.Clone(context: ctx2)));
            test(!compObj.Clone(context: ctx1).Equals(compObj.Clone(context: ctx2)));

            test(compObj.Clone(preferSecure: true).Equals(compObj.Clone(preferSecure: true)));
            test(!compObj.Clone(preferSecure: true).Equals(compObj.Clone(preferSecure: false)));

            var compObj1 = IObjectPrx.Parse("foo:tcp -h 127.0.0.1 -p 10000", communicator);
            var compObj2 = IObjectPrx.Parse("foo:tcp -h 127.0.0.1 -p 10001", communicator);

            test(!compObj1.Equals(compObj2));

            compObj1 = IObjectPrx.Parse("foo@MyAdapter1", communicator);
            compObj2 = IObjectPrx.Parse("foo@MyAdapter2", communicator);
            test(!compObj1.Equals(compObj2));

            test(compObj1.Clone(locatorCacheTimeout: 20).Equals(compObj1.Clone(locatorCacheTimeout: 20)));
            test(!compObj1.Clone(locatorCacheTimeout: 10).Equals(compObj1.Clone(locatorCacheTimeout: 20)));

            test(compObj1.Clone(invocationTimeout: 20).Equals(compObj1.Clone(invocationTimeout: 20)));
            test(!compObj1.Clone(invocationTimeout: 10).Equals(compObj1.Clone(invocationTimeout: 20)));

            compObj1 = IObjectPrx.Parse("foo:tcp -h 127.0.0.1 -p 1000", communicator);
            compObj2 = IObjectPrx.Parse("foo@MyAdapter1", communicator);
            test(!compObj1.Equals(compObj2));

            IEndpoint[] endpts1 = IObjectPrx.Parse("foo:tcp -h 127.0.0.1 -p 10000", communicator).Endpoints;
            IEndpoint[] endpts2 = IObjectPrx.Parse("foo:tcp -h 127.0.0.1 -p 10001", communicator).Endpoints;
            test(!endpts1[0].Equals(endpts2[0]));
            test(endpts1[0].Equals(IObjectPrx.Parse("foo:tcp -h 127.0.0.1 -p 10000", communicator).Endpoints[0]));

            Connection baseConnection = baseProxy.GetConnection();

            if (baseConnection != null)
            {
                Connection baseConnection2 = baseProxy.Clone(connectionId: "base2").GetConnection();
                compObj1 = compObj1.Clone(fixedConnection: baseConnection);
                compObj2 = compObj2.Clone(fixedConnection: baseConnection2);
                test(!compObj1.Equals(compObj2));
            }
            output.WriteLine("ok");

            output.Write("testing checked cast... ");
            output.Flush();
            Test.IMyClassPrx cl = Test.IMyClassPrx.CheckedCast(baseProxy);
            test(cl != null);
            Test.IMyDerivedClassPrx derived = Test.IMyDerivedClassPrx.CheckedCast(cl);
            test(derived != null);
            test(cl.Equals(baseProxy));
            test(derived.Equals(baseProxy));
            test(cl.Equals(derived));
            try
            {
                Test.IMyDerivedClassPrx.CheckedCast(cl.Clone(facet: "facet", IObjectPrx.Factory));
                test(false);
            }
            catch (ObjectNotExistException)
            {
            }
            output.WriteLine("ok");

            output.Write("testing checked cast with context... ");
            output.Flush();

            Dictionary <string, string> c = cl.getContext();

            test(c == null || c.Count == 0);

            c        = new Dictionary <string, string>();
            c["one"] = "hello";
            c["two"] = "world";
            cl       = Test.IMyClassPrx.CheckedCast(baseProxy, c);
            Dictionary <string, string> c2 = cl.getContext();

            test(global::Test.Collections.Equals(c, c2));
            output.WriteLine("ok");

            output.Write("testing ice_fixed... ");
            output.Flush();
            {
                Connection connection = cl.GetConnection();
                if (connection != null)
                {
                    test(!cl.IsFixed);
                    Test.IMyClassPrx prx = cl.Clone(fixedConnection: connection);
                    test(prx.IsFixed);
                    prx.IcePing();
                    try
                    {
                        cl.Clone(secure: true, fixedConnection: connection);
                        test(false);
                    }
                    catch (ArgumentException)
                    {
                    }
                    test(cl.Clone("facet", IObjectPrx.Factory, fixedConnection: connection).Facet.Equals("facet"));
                    test(cl.Clone(invocationMode: InvocationMode.Oneway, fixedConnection: connection).IsOneway);
                    Dictionary <string, string> ctx = new Dictionary <string, string>();
                    ctx["one"] = "hello";
                    ctx["two"] = "world";
                    test(cl.Clone(fixedConnection: connection).Context.Count == 0);
                    test(cl.Clone(context: ctx, fixedConnection: connection).Context.Count == 2);
                    test(cl.Clone(fixedConnection: connection).InvocationTimeout == -1);
                    test(cl.Clone(invocationTimeout: 10, fixedConnection: connection).InvocationTimeout == 10);
                    test(cl.Clone(fixedConnection: connection).GetConnection() == connection);
                    test(cl.Clone(fixedConnection: connection).Clone(fixedConnection: connection).GetConnection() == connection);
                    test(!cl.Clone(fixedConnection: connection).ConnectionTimeout.HasValue);
                    test(cl.Clone(compress: true, fixedConnection: connection).Compress.Value);
                    Connection fixedConnection = cl.Clone(connectionId: "ice_fixed").GetConnection();
                    test(cl.Clone(fixedConnection: connection).Clone(fixedConnection: fixedConnection).GetConnection() == fixedConnection);
                    try
                    {
                        cl.Clone(secure: !connection.Endpoint.GetInfo().Secure(),
                                 fixedConnection: connection);
                        test(false);
                    }
                    catch (ArgumentException)
                    {
                    }
                    try
                    {
                        cl.Clone(invocationMode: InvocationMode.Datagram, fixedConnection: connection);
                        test(false);
                    }
                    catch (ArgumentException)
                    {
                    }
                }
            }
            output.WriteLine("ok");

            output.Write("testing encoding versioning... ");
            string ref13 = "test -e 1.3:" + helper.getTestEndpoint(0);

            Test.IMyClassPrx cl13 = Test.IMyClassPrx.Parse(ref13, communicator);
            try
            {
                cl13.IcePing();
                test(false);
            }
            catch (NotSupportedException)
            {
                // expected
            }
            output.WriteLine("ok");

            output.Write("testing protocol versioning... ");
            output.Flush();
            string ref3 = "test -p 3:" + helper.getTestEndpoint(0);
            var    cl3  = Test.IMyClassPrx.Parse(ref3, communicator);

            try
            {
                cl3.IcePing();
                test(false);
            }
            catch (NotSupportedException)
            {
                // expected
            }
            output.WriteLine("ok");

            output.Write("testing opaque endpoints... ");
            output.Flush();

            try
            {
                // Invalid -x option
                IObjectPrx.Parse("id:opaque -t 99 -v abcd -x abc", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Missing -t and -v
                IObjectPrx.Parse("id:opaque", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Repeated -t
                IObjectPrx.Parse("id:opaque -t 1 -t 1 -v abcd", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Repeated -v
                IObjectPrx.Parse("id:opaque -t 1 -v abcd -v abcd", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Missing -t
                IObjectPrx.Parse("id:opaque -v abcd", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Missing -v
                IObjectPrx.Parse("id:opaque -t 1", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Missing arg for -t
                IObjectPrx.Parse("id:opaque -t -v abcd", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Missing arg for -v
                IObjectPrx.Parse("id:opaque -t 1 -v", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Not a number for -t
                IObjectPrx.Parse("id:opaque -t x -v abcd", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // < 0 for -t
                IObjectPrx.Parse("id:opaque -t -1 -v abcd", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Invalid char for -v
                IObjectPrx.Parse("id:opaque -t 99 -v x?c", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            try
            {
                // Invalid lenght for base64 input
                IObjectPrx.Parse("id:opaque -t 99 -v xc", communicator);
                test(false);
            }
            catch (FormatException)
            {
            }

            // Legal TCP endpoint expressed as opaque endpoint
            // Opaque endpoint encoded with 1.1 encoding.
            var p1 = IObjectPrx.Parse("test -e 1.1:opaque -e 1.1 -t 1 -v CTEyNy4wLjAuMeouAAAQJwAAAA==",
                                      communicator);

            test(p1.ToString().Equals("test -t -p ice1 -e 1.1:tcp -h 127.0.0.1 -p 12010 -t 10000"));

            if ((communicator.GetPropertyAsInt("IPv6") ?? 0) == 0)
            {
                // Working?
                bool ssl = communicator.GetProperty("Default.Transport") == "ssl";
                bool tcp = communicator.GetProperty("Default.Transport") == "tcp";

                // Two legal TCP endpoints expressed as opaque endpoints
                p1 = IObjectPrx.Parse("test -e 1.1:" + "" +
                                      "opaque -e 1.1 -t 1 -v CTEyNy4wLjAuMeouAAAQJwAAAA==:" +
                                      "opaque -e 1.1 -t 1 -v CTEyNy4wLjAuMusuAAAQJwAAAA==", communicator);
                var pstr = p1.ToString();
                test(pstr.Equals("test -t -p ice1 -e 1.1:tcp -h 127.0.0.1 -p 12010 -t 10000:tcp -h 127.0.0.2 -p 12011 -t 10000"));

                // Test that an SSL endpoint and a nonsense endpoint get written back out as an opaque endpoint.
                p1 = IObjectPrx.Parse("test -e 1.1:opaque -e 1.1 -t 2 -v CTEyNy4wLjAuMREnAAD/////AA==:opaque -e 1.1 -t 99 -v abch",
                                      communicator);
                pstr = p1.ToString();
                if (ssl)
                {
                    test(pstr.Equals("test -t -p ice1 -e 1.1:ssl -h 127.0.0.1 -p 10001 -t infinite:opaque -t 99 -e 1.1 -v abch"));
                }
                else if (tcp)
                {
                    test(pstr.Equals(
                             "test -t -p ice1 -e 1.1:opaque -t 2 -e 1.1 -v CTEyNy4wLjAuMREnAAD/////AA==:opaque -t 99 -e 1.1 -v abch"));
                }
            }

            output.WriteLine("ok");

            output.Write("testing communicator shutdown/destroy... ");
            output.Flush();
            {
                Communicator com = new Communicator();
                com.Shutdown();
                test(com.IsShutdown());
                com.WaitForShutdown();
                com.Destroy();
                com.Shutdown();
                test(com.IsShutdown());
                com.WaitForShutdown();
                com.Destroy();
            }
            output.WriteLine("ok");

            return(cl);
        }
Beispiel #10
0
        internal static void twoways(Communicator communicator, Test.IMyClassPrx p)
        {
            {
                Dictionary <int, int> i = new Dictionary <int, int>();
                i[0] = 1;
                i[1] = 0;

                Dictionary <int, int> o;
                Dictionary <int, int> r;
                (r, o) = p.opNV(i);

                test(global::Test.Collections.Equals(i, o));
                test(global::Test.Collections.Equals(i, r));
            }

            {
                Dictionary <string, string> i = new Dictionary <string, string>();
                i["a"] = "b";
                i["b"] = "a";

                Dictionary <string, string> o;
                Dictionary <string, string> r;
                (r, o) = p.opNR(i);

                test(global::Test.Collections.Equals(i, o));
                test(global::Test.Collections.Equals(i, r));
            }

            {
                Dictionary <string, Dictionary <int, int> > i = new Dictionary <string, Dictionary <int, int> >();
                Dictionary <int, int> id = new Dictionary <int, int>();
                id[0]  = 1;
                id[1]  = 0;
                i["a"] = id;
                i["b"] = id;

                Dictionary <string, Dictionary <int, int> > o;
                Dictionary <string, Dictionary <int, int> > r;
                (r, o) = p.opNDV(i);

                foreach (string key in i.Keys)
                {
                    test(global::Test.Collections.Equals(i[key], o[key]));
                    test(global::Test.Collections.Equals(i[key], r[key]));
                }
            }

            {
                Dictionary <string, Dictionary <string, string> > i = new Dictionary <string, Dictionary <string, string> >();
                Dictionary <string, string> id = new Dictionary <string, string>();
                id["a"] = "b";
                id["b"] = "a";
                i["a"]  = id;
                i["b"]  = id;

                Dictionary <string, Dictionary <string, string> > o;
                Dictionary <string, Dictionary <string, string> > r;
                (r, o) = p.opNDR(i);

                foreach (string key in i.Keys)
                {
                    test(global::Test.Collections.Equals(i[key], o[key]));
                    test(global::Test.Collections.Equals(i[key], r[key]));
                }
            }

            {
                int[] ii = new int[] { 1, 2 };
                Dictionary <string, int[]> i = new Dictionary <string, int[]>();
                i["a"] = ii;
                i["b"] = ii;

                Dictionary <string, int[]> o;
                Dictionary <string, int[]> r;
                (r, o) = p.opNDAIS(i);

                foreach (string key in i.Keys)
                {
                    test(global::Test.Collections.Equals(i[key], o[key]));
                    test(global::Test.Collections.Equals(i[key], r[key]));
                }
            }

            {
                List <int> ii = new List <int>();
                ii.Add(1);
                ii.Add(2);
                Dictionary <string, List <int> > i = new Dictionary <string, List <int> >();
                i["a"] = ii;
                i["b"] = ii;

                Dictionary <string, List <int> > o;
                Dictionary <string, List <int> > r;
                (r, o) = p.opNDGIS(i);

                foreach (string key in i.Keys)
                {
                    test(global::Test.Collections.Equals(i[key], o[key]));
                    test(global::Test.Collections.Equals(i[key], r[key]));
                }
            }

            {
                string[] ii = new string[] { "a", "b" };
                Dictionary <string, string[]> i = new Dictionary <string, string[]>();
                i["a"] = ii;
                i["b"] = ii;

                Dictionary <string, string[]> o;
                Dictionary <string, string[]> r;
                (r, o) = p.opNDASS(i);

                foreach (string key in i.Keys)
                {
                    test(global::Test.Collections.Equals(i[key], o[key]));
                    test(global::Test.Collections.Equals(i[key], r[key]));
                }
            }

            {
                List <string> ii = new List <string>();
                ii.Add("a");
                ii.Add("b");
                Dictionary <string, List <string> > i = new Dictionary <string, List <string> >();
                i["a"] = ii;
                i["b"] = ii;

                Dictionary <string, List <string> > o;
                Dictionary <string, List <string> > r;
                (r, o) = p.opNDGSS(i);

                foreach (string key in i.Keys)
                {
                    test(global::Test.Collections.Equals(i[key], o[key]));
                    test(global::Test.Collections.Equals(i[key], r[key]));
                }
            }
        }
Beispiel #11
0
        internal static void twowaysAMI(Ice.Communicator communicator, Test.IMyClassPrx p)
        {
            {
                var i = Enumerable.Range(0, Length).Select(x => (byte)x).ToArray();
                var r = p.opAByteSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (byte)x).ToList();
                var r = p.opLByteSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <byte>(Enumerable.Range(0, Length).Select(x => (byte)x).ToArray());
                var r = p.opKByteSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <byte>(Enumerable.Range(0, Length).Select(x => (byte)x).ToArray());
                var r = p.opQByteSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <byte>(Enumerable.Range(0, Length).Select(x => (byte)x).ToArray());
                var r = p.opSByteSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => x % 1 == 1).ToArray();
                var r = p.opABoolSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => x % 1 == 1).ToList();
                var r = p.opLBoolSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <bool>(Enumerable.Range(0, Length).Select(x => x % 1 == 1).ToArray());
                var r = p.opKBoolSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <bool>(Enumerable.Range(0, Length).Select(x => x % 1 == 1).ToArray());
                var r = p.opQBoolSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <bool>(Enumerable.Range(0, Length).Select(x => x % 1 == 1).ToArray());
                var r = p.opSBoolSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (short)x).ToArray();
                var r = p.opAShortSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (short)x).ToList();
                var r = p.opLShortSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <short>(Enumerable.Range(0, Length).Select(x => (short)x).ToArray());
                var r = p.opKShortSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <short>(Enumerable.Range(0, Length).Select(x => (short)x).ToArray());
                var r = p.opQShortSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <short>(Enumerable.Range(0, Length).Select(x => (short)x).ToArray());
                var r = p.opSShortSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).ToArray();
                var r = p.opAIntSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).ToList();
                var r = p.opLIntSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <int>(Enumerable.Range(0, Length).ToArray());
                var r = p.opKIntSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <int>(Enumerable.Range(0, Length).ToArray());
                var r = p.opQIntSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <int>(Enumerable.Range(0, Length).ToArray());
                var r = p.opSIntSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (long)x).ToArray();
                var r = p.opALongSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (long)x).ToList();
                var r = p.opLLongSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <long>(Enumerable.Range(0, Length).Select(x => (long)x).ToArray());
                var r = p.opKLongSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <long>(Enumerable.Range(0, Length).Select(x => (long)x).ToArray());
                var r = p.opQLongSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <long>(Enumerable.Range(0, Length).Select(x => (long)x).ToArray());
                var r = p.opSLongSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (float)x).ToArray();
                var r = p.opAFloatSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (float)x).ToList();
                var r = p.opLFloatSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <float>(Enumerable.Range(0, Length).Select(x => (float)x).ToArray());
                var r = p.opKFloatSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <float>(Enumerable.Range(0, Length).Select(x => (float)x).ToArray());
                var r = p.opQFloatSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <float>(Enumerable.Range(0, Length).Select(x => (float)x).ToArray());
                var r = p.opSFloatSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (double)x).ToArray();
                var r = p.opADoubleSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (double)x).ToList();
                var r = p.opLDoubleSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <double>(Enumerable.Range(0, Length).Select(x => (double)x).ToArray());
                var r = p.opKDoubleSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <double>(Enumerable.Range(0, Length).Select(x => (double)x).ToArray());
                var r = p.opQDoubleSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <double>(Enumerable.Range(0, Length).Select(x => (double)x).ToArray());
                var r = p.opSDoubleSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => x.ToString()).ToArray();
                var r = p.opAStringSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => x.ToString()).ToList();
                var r = p.opLStringSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <string>(Enumerable.Range(0, Length).Select(x => x.ToString()).ToArray());
                var r = p.opKStringSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <string>(Enumerable.Range(0, Length).Select(x => x.ToString()).ToArray());
                var r = p.opQStringSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <string>(Enumerable.Range(0, Length).Select(x => x.ToString()).ToArray());
                var r = p.opSStringSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CV(x) as AnyClass).ToArray();
                var r = p.opAObjectSAsync(i).Result;
                test(r.o.SequenceEqual(i, new CVComparer()));
                test(r.ReturnValue.SequenceEqual(i, new CVComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CV(x) as AnyClass).ToList();
                var r = p.opLObjectSAsync(i).Result;
                test(r.o.SequenceEqual(i, new CVComparer()));
                test(r.ReturnValue.SequenceEqual(i, new CVComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(
                    x => IObjectPrx.Parse(x.ToString(), communicator)).ToArray();
                var r = p.opAObjectPrxSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(
                    x => IObjectPrx.Parse(x.ToString(), communicator)).ToList();
                var r = p.opLObjectPrxSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <IObjectPrx>(Enumerable.Range(0, Length).Select(
                                                   x => IObjectPrx.Parse(x.ToString(), communicator)).ToArray());
                var r = p.opQObjectPrxSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <IObjectPrx>(Enumerable.Range(0, Length).Select(
                                                   x => IObjectPrx.Parse(x.ToString(), communicator)).ToArray());
                var r = p.opSObjectPrxSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.S(x)).ToArray();
                var r = p.opAStructSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.S(x)).ToList();
                var r = p.opLStructSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <Test.S>(Enumerable.Range(0, Length).Select(x => new Test.S(x)).ToArray());
                var r = p.opKStructSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <Test.S>(Enumerable.Range(0, Length).Select(x => new Test.S(x)).ToArray());
                var r = p.opQStructSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <Test.S>(Enumerable.Range(0, Length).Select(x => new Test.S(x)).ToArray());
                var r = p.opSStructSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CV(x)).ToArray();
                var r = p.opACVSAsync(i).Result;
                test(r.o.SequenceEqual(i, new CVComparer()));
                test(r.ReturnValue.SequenceEqual(i, new CVComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CV(x)).ToList();
                var r = p.opLCVSAsync(i).Result;
                test(r.o.SequenceEqual(i, new CVComparer()));
                test(r.ReturnValue.SequenceEqual(i, new CVComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(
                    x => Test.IIPrx.Parse(x.ToString(), communicator)).ToArray();
                var r = p.opAIPrxSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(
                    x => Test.IIPrx.Parse(x.ToString(), communicator)).ToList();
                var r = p.opLIPrxSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <Test.IIPrx>(Enumerable.Range(0, Length).Select(
                                                        x => Test.IIPrx.Parse(x.ToString(), communicator)).ToArray());
                var r = p.opKIPrxSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <Test.IIPrx>(Enumerable.Range(0, Length).Select(
                                                   x => Test.IIPrx.Parse(x.ToString(), communicator)).ToArray());
                var r = p.opQIPrxSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <Test.IIPrx>(Enumerable.Range(0, Length).Select(
                                                   x => Test.IIPrx.Parse(x.ToString(), communicator)).ToArray());
                var r = p.opSIPrxSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CR(new Test.CV(x))).ToArray();
                var r = p.opACRSAsync(i).Result;
                test(r.o.SequenceEqual(i, new CRComparer()));
                test(r.ReturnValue.SequenceEqual(i, new CRComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CR(new Test.CV(x))).ToList();
                var r = p.opLCRSAsync(i).Result;
                test(r.o.SequenceEqual(i, new CRComparer()));
                test(r.ReturnValue.SequenceEqual(i, new CRComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (Test.En)(x % 3)).ToArray();
                var r = p.opAEnSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (Test.En)(x % 3)).ToList();
                var r = p.opLEnSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new LinkedList <Test.En>(Enumerable.Range(0, Length).Select(
                                                     x => (Test.En)(x % 3)).ToArray());
                var r = p.opKEnSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Queue <Test.En>(Enumerable.Range(0, Length).Select(x => (Test.En)(x % 3)).ToArray());
                var r = p.opQEnSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Stack <Test.En>(Enumerable.Range(0, Length).Select(x => (Test.En)(x % 3)).ToArray());
                var r = p.opSEnSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Custom <int>(Enumerable.Range(0, Length).ToList());
                var r = p.opCustomIntSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Custom <Test.CV>(Enumerable.Range(0, Length).Select(x => new Test.CV(x)).ToList());
                var r = p.opCustomCVSAsync(i).Result;
                test(r.o.SequenceEqual(i, new CVComparer()));
                test(r.ReturnValue.SequenceEqual(i, new CVComparer()));
            }

            {
                var i = new Custom <Custom <int> >();
                for (int c = 0; c < Length; ++c)
                {
                    i.Add(new Custom <int>(Enumerable.Range(0, Length).ToList()));
                }
                var r = p.opCustomIntSSAsync(i).Result;
                test(r.o.SequenceEqual(i));
                test(r.ReturnValue.SequenceEqual(i));
            }

            {
                var i = new Custom <Custom <Test.CV> >();
                for (int c = 0; c < Length; ++c)
                {
                    i.Add(new Custom <Test.CV>(Enumerable.Range(0, Length).Select(x => new Test.CV(x)).ToList()));
                }
                var r = p.opCustomCVSSAsync(i).Result;
                for (int c = 0; c < Length; ++c)
                {
                    test(r.o[c].SequenceEqual(i[c], new CVComparer()));
                    test(r.ReturnValue[c].SequenceEqual(i[c], new CVComparer()));
                }
            }

            {
                var r = p.opSerialSmallCSharpAsync(null).Result;
                test(r.o == null);
                test(r.ReturnValue == null);
            }

            {
                var i = new Serialize.Small();
                i.i = 99;

                var r = p.opSerialSmallCSharpAsync(i).Result;
                test(r.o.i == 99);
                test(r.ReturnValue.i == 99);
            }

            {
                var i = new Serialize.Large();
                i.d1  = 1.0;
                i.d2  = 2.0;
                i.d3  = 3.0;
                i.d4  = 4.0;
                i.d5  = 5.0;
                i.d6  = 6.0;
                i.d7  = 7.0;
                i.d8  = 8.0;
                i.d9  = 9.0;
                i.d10 = 10.0;

                var r = p.opSerialLargeCSharpAsync(i).Result;

                test(r.o.d1 == 1.0);
                test(r.o.d2 == 2.0);
                test(r.o.d3 == 3.0);
                test(r.o.d4 == 4.0);
                test(r.o.d5 == 5.0);
                test(r.o.d6 == 6.0);
                test(r.o.d7 == 7.0);
                test(r.o.d8 == 8.0);
                test(r.o.d9 == 9.0);
                test(r.o.d10 == 10.0);

                test(r.ReturnValue.d1 == 1.0);
                test(r.ReturnValue.d2 == 2.0);
                test(r.ReturnValue.d3 == 3.0);
                test(r.ReturnValue.d4 == 4.0);
                test(r.ReturnValue.d5 == 5.0);
                test(r.ReturnValue.d6 == 6.0);
                test(r.ReturnValue.d7 == 7.0);
                test(r.ReturnValue.d8 == 8.0);
                test(r.ReturnValue.d9 == 9.0);
                test(r.ReturnValue.d10 == 10.0);
            }

            {
                var i = new Serialize.Struct();
                i.o  = null;
                i.o2 = i;
                i.s  = null;
                i.s2 = "Hello";

                var r = p.opSerialStructCSharpAsync(i).Result;

                test(r.o.o == null);
                test(r.o.o2 == r.o);
                test(r.o.s == null);
                test(r.o.s2 == "Hello");

                test(r.ReturnValue.o == null);
                test(r.ReturnValue.o2 == r.ReturnValue);
                test(r.ReturnValue.s == null);
                test(r.ReturnValue.s2 == "Hello");
            }
        }
Beispiel #12
0
        internal static void twoways(Communicator communicator, Test.IMyClassPrx p)
        {
            {
                var i = Enumerable.Range(0, Length).Select(x => (byte)x).ToArray();
                var(r, o) = p.opAByteS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (byte)x).ToList();
                var(r, o) = p.opLByteS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <byte>(Enumerable.Range(0, Length).Select(x => (byte)x).ToArray());
                var(r, o) = p.opKByteS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <byte>(Enumerable.Range(0, Length).Select(x => (byte)x).ToArray());
                var(r, o) = p.opQByteS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <byte>(Enumerable.Range(0, Length).Select(x => (byte)x).ToArray());
                var(r, o) = p.opSByteS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => x % 1 == 1).ToArray();
                var(r, o) = p.opABoolS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => x % 1 == 1).ToList();
                var(r, o) = p.opLBoolS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <bool>(Enumerable.Range(0, Length).Select(x => x % 1 == 1).ToArray());
                var(r, o) = p.opKBoolS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <bool>(Enumerable.Range(0, Length).Select(x => x % 1 == 1).ToArray());
                var(r, o) = p.opQBoolS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <bool>(Enumerable.Range(0, Length).Select(x => x % 1 == 1).ToArray());
                var(r, o) = p.opSBoolS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (short)x).ToArray();
                var(r, o) = p.opAShortS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (short)x).ToList();
                var(r, o) = p.opLShortS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <short>(Enumerable.Range(0, Length).Select(x => (short)x).ToArray());
                var(r, o) = p.opKShortS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <short>(Enumerable.Range(0, Length).Select(x => (short)x).ToArray());
                var(r, o) = p.opQShortS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <short>(Enumerable.Range(0, Length).Select(x => (short)x).ToArray());
                var(r, o) = p.opSShortS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).ToArray();
                var(r, o) = p.opAIntS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).ToList();
                var(r, o) = p.opLIntS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <int>(Enumerable.Range(0, Length).ToArray());
                var(r, o) = p.opKIntS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <int>(Enumerable.Range(0, Length).ToArray());
                var(r, o) = p.opQIntS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <int>(Enumerable.Range(0, Length).ToArray());
                var(r, o) = p.opSIntS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (long)x).ToArray();
                var(r, o) = p.opALongS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (long)x).ToList();
                var(r, o) = p.opLLongS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <long>(Enumerable.Range(0, Length).Select(x => (long)x).ToArray());
                var(r, o) = p.opKLongS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <long>(Enumerable.Range(0, Length).Select(x => (long)x).ToArray());
                var(r, o) = p.opQLongS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <long>(Enumerable.Range(0, Length).Select(x => (long)x).ToArray());
                var(r, o) = p.opSLongS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (float)x).ToArray();
                var(r, o) = p.opAFloatS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (float)x).ToList();
                var(r, o) = p.opLFloatS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <float>(Enumerable.Range(0, Length).Select(x => (float)x).ToArray());
                var(r, o) = p.opKFloatS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <float>(Enumerable.Range(0, Length).Select(x => (float)x).ToArray());
                var(r, o) = p.opQFloatS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <float>(Enumerable.Range(0, Length).Select(x => (float)x).ToArray());
                var(r, o) = p.opSFloatS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (double)x).ToArray();
                var(r, o) = p.opADoubleS(i);
                test(o.SequenceEqual(i));
                test(r.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (double)x).ToList();
                var(r, o) = p.opLDoubleS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <double>(Enumerable.Range(0, Length).Select(x => (double)x).ToArray());
                var(r, o) = p.opKDoubleS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <double>(Enumerable.Range(0, Length).Select(x => (double)x).ToArray());
                var(r, o) = p.opQDoubleS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <double>(Enumerable.Range(0, Length).Select(x => (double)x).ToArray());
                var(r, o) = p.opSDoubleS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => x.ToString()).ToArray();
                var(r, o) = p.opAStringS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => x.ToString()).ToList();
                var(r, o) = p.opLStringS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <string>(Enumerable.Range(0, Length).Select(x => x.ToString()).ToArray());
                var(r, o) = p.opKStringS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <string>(Enumerable.Range(0, Length).Select(x => x.ToString()).ToArray());
                var(r, o) = p.opQStringS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <string>(Enumerable.Range(0, Length).Select(x => x.ToString()).ToArray());
                var(r, o) = p.opSStringS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CV(x) as AnyClass).ToArray();
                var(r, o) = p.opAObjectS(i);
                test(r.SequenceEqual(i, new CVComparer()));
                test(o.SequenceEqual(i, new CVComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CV(x) as AnyClass).ToList();
                var(r, o) = p.opLObjectS(i);
                test(r.SequenceEqual(i, new CVComparer()));
                test(o.SequenceEqual(i, new CVComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(
                    x => IObjectPrx.Parse(x.ToString(), communicator)).ToArray();
                var(r, o) = p.opAObjectPrxS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(
                    x => IObjectPrx.Parse(x.ToString(), communicator)).ToList();
                var(r, o) = p.opLObjectPrxS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <IObjectPrx>(Enumerable.Range(0, Length).Select(
                                                        x => IObjectPrx.Parse(x.ToString(), communicator)).ToArray());
                var(r, o) = p.opKObjectPrxS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <IObjectPrx>(Enumerable.Range(0, Length).Select(
                                                   x => IObjectPrx.Parse(x.ToString(), communicator)).ToArray());
                var(r, o) = p.opQObjectPrxS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <IObjectPrx>(Enumerable.Range(0, Length).Select(
                                                   x => IObjectPrx.Parse(x.ToString(), communicator)).ToArray());
                var(r, o) = p.opSObjectPrxS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.S(x)).ToArray();
                var(r, o) = p.opAStructS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.S(x)).ToList();
                var(r, o) = p.opLStructS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <Test.S>(Enumerable.Range(0, Length).Select(x => new Test.S(x)).ToArray());
                var(r, o) = p.opKStructS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <Test.S>(Enumerable.Range(0, Length).Select(x => new Test.S(x)).ToArray());
                var(r, o) = p.opQStructS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <Test.S>(Enumerable.Range(0, Length).Select(x => new Test.S(x)).ToArray());
                var(r, o) = p.opSStructS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.SD(x)).ToArray();
                var(r, o) = p.opAStructSD(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.SD(x)).ToList();
                var(r, o) = p.opLStructSD(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <Test.SD>(Enumerable.Range(0, Length).Select(x => new Test.SD(x)).ToList());
                var(r, o) = p.opKStructSD(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <Test.SD>(Enumerable.Range(0, Length).Select(x => new Test.SD(x)).ToList());
                var(r, o) = p.opQStructSD(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <Test.SD>(Enumerable.Range(0, Length).Select(x => new Test.SD(x)).ToList());
                var(r, o) = p.opSStructSD(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CV(x)).ToArray();
                var(r, o) = p.opACVS(i);
                test(r.SequenceEqual(i, new CVComparer()));
                test(o.SequenceEqual(i, new CVComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CV(x)).ToList();
                var(r, o) = p.opLCVS(i);
                test(r.SequenceEqual(i, new CVComparer()));
                test(o.SequenceEqual(i, new CVComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CR(new Test.CV(x))).ToArray();
                var(r, o) = p.opACRS(i);
                test(r.SequenceEqual(i, new CRComparer()));
                test(o.SequenceEqual(i, new CRComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => new Test.CR(new Test.CV(x))).ToList();
                var(r, o) = p.opLCRS(i);
                test(r.SequenceEqual(i, new CRComparer()));
                test(o.SequenceEqual(i, new CRComparer()));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (Test.En)(x % 3)).ToArray();
                var(r, o) = p.opAEnS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(x => (Test.En)(x % 3)).ToList();
                var(r, o) = p.opLEnS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <Test.En>(Enumerable.Range(0, Length).Select(x => (Test.En)(x % 3)).ToList());
                var(r, o) = p.opKEnS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <Test.En>(Enumerable.Range(0, Length).Select(x => (Test.En)(x % 3)).ToList());
                var(r, o) = p.opQEnS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <Test.En>(Enumerable.Range(0, Length).Select(x => (Test.En)(x % 3)).ToList());
                var(r, o) = p.opSEnS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(
                    x => Test.IIPrx.Parse(x.ToString(), communicator)).ToArray();
                var(r, o) = p.opAIPrxS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = Enumerable.Range(0, Length).Select(
                    x => Test.IIPrx.Parse(x.ToString(), communicator)).ToList();
                var(r, o) = p.opLIPrxS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new LinkedList <Test.IIPrx>(Enumerable.Range(0, Length).Select(
                                                        x => Test.IIPrx.Parse(x.ToString(), communicator)).ToList());
                var(r, o) = p.opKIPrxS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Queue <Test.IIPrx>(Enumerable.Range(0, Length).Select(
                                                   x => Test.IIPrx.Parse(x.ToString(), communicator)).ToList());
                var(r, o) = p.opQIPrxS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Stack <Test.IIPrx>(Enumerable.Range(0, Length).Select(
                                                   x => Test.IIPrx.Parse(x.ToString(), communicator)).ToList());
                var(r, o) = p.opSIPrxS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Custom <int>(Enumerable.Range(0, Length).ToList());
                var(r, o) = p.opCustomIntS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Custom <Test.CV>(Enumerable.Range(0, Length).Select(x => new Test.CV(x)).ToList());
                var(r, o) = p.opCustomCVS(i);
                test(r.SequenceEqual(i, new CVComparer()));
                test(o.SequenceEqual(i, new CVComparer()));
            }

            {
                var i = new Custom <Custom <int> >();
                for (int c = 0; c < Length; ++c)
                {
                    i.Add(new Custom <int>(Enumerable.Range(0, Length).ToList()));
                }
                var(r, o) = p.opCustomIntSS(i);
                test(r.SequenceEqual(i));
                test(o.SequenceEqual(i));
            }

            {
                var i = new Custom <Custom <Test.CV> >();
                for (int c = 0; c < Length; ++c)
                {
                    i.Add(new Custom <Test.CV>(Enumerable.Range(0, Length).Select(x => new Test.CV(x)).ToList()));
                }
                var(r, o) = p.opCustomCVSS(i);
                for (int c = 0; c < Length; ++c)
                {
                    test(r[c].SequenceEqual(i[c], new CVComparer()));
                    test(o[c].SequenceEqual(i[c], new CVComparer()));
                }
            }

            {
                Serialize.Small i = null;
                Serialize.Small o;
                Serialize.Small r;

                (r, o) = p.opSerialSmallCSharp(i);

                test(o == null);
                test(r == null);
            }

            {
                Serialize.Small i = new Serialize.Small();
                i.i = 99;
                Serialize.Small o;
                Serialize.Small r;

                try
                {
                    (r, o) = p.opSerialSmallCSharp(i);

                    test(o.i == 99);
                    test(r.i == 99);
                }
                catch (Ice.OperationNotExistException)
                {
                    // OK, talking to non-C# server.
                }
            }

            {
                Serialize.Large i = new Serialize.Large();
                i.d1  = 1.0;
                i.d2  = 2.0;
                i.d3  = 3.0;
                i.d4  = 4.0;
                i.d5  = 5.0;
                i.d6  = 6.0;
                i.d7  = 7.0;
                i.d8  = 8.0;
                i.d9  = 9.0;
                i.d10 = 10.0;
                Serialize.Large o;
                Serialize.Large r;

                try
                {
                    (r, o) = p.opSerialLargeCSharp(i);

                    test(o.d1 == 1.0);
                    test(o.d2 == 2.0);
                    test(o.d3 == 3.0);
                    test(o.d4 == 4.0);
                    test(o.d5 == 5.0);
                    test(o.d6 == 6.0);
                    test(o.d7 == 7.0);
                    test(o.d8 == 8.0);
                    test(o.d9 == 9.0);
                    test(o.d10 == 10.0);
                    test(r.d1 == 1.0);
                    test(r.d2 == 2.0);
                    test(r.d3 == 3.0);
                    test(r.d4 == 4.0);
                    test(r.d5 == 5.0);
                    test(r.d6 == 6.0);
                    test(r.d7 == 7.0);
                    test(r.d8 == 8.0);
                    test(r.d9 == 9.0);
                    test(r.d10 == 10.0);
                }
                catch (Ice.OperationNotExistException)
                {
                    // OK, talking to non-C# server.
                }
            }

            {
                Serialize.Struct i = new Serialize.Struct();
                i.o  = null;
                i.o2 = i;
                i.s  = null;
                i.s2 = "Hello";
                Serialize.Struct o;
                Serialize.Struct r;

                try
                {
                    (r, o) = p.opSerialStructCSharp(i);

                    test(o.o == null);
                    test(o.o2 != null);
                    test(((Serialize.Struct)(o.o2)).o == null);
                    test(((Serialize.Struct)(o.o2)).o2 == o.o2);
                    test(o.s == null);
                    test(o.s2.Equals("Hello"));
                    test(r.o == null);
                    test(r.o2 != null);
                    test(((Serialize.Struct)(r.o2)).o == null);
                    test(((Serialize.Struct)(r.o2)).o2 == r.o2);
                    test(r.s == null);
                    test(r.s2.Equals("Hello"));
                }
                catch (Ice.OperationNotExistException)
                {
                    // OK, talking to non-C# server.
                }
            }
        }
Beispiel #13
0
 public Test.IMyClass.OpMyClassReturnValue opMyClass(Test.IMyClassPrx p1, Current current) =>
 new Test.IMyClass.OpMyClassReturnValue(
     current.Adapter.CreateProxy(current.Id, Test.IMyClassPrx.Factory),
     p1,
     current.Adapter.CreateProxy("noSuchIdentity", Test.IMyClassPrx.Factory));
Beispiel #14
0
        internal static void onewaysAMI(global::Test.TestHelper helper, Test.IMyClassPrx proxy)
        {
            Communicator communicator = helper.communicator();

            Test.IMyClassPrx p = proxy.Clone(oneway: true);

            {
                Callback cb = new Callback();
                p.IcePingAsync(progress: new Progress <bool>(
                                   sentSynchronously =>
                {
                    cb.sent(sentSynchronously);
                }));
                cb.check();
            }

            {
                try
                {
                    p.IceIsAAsync("::Test::MyClass");
                    test(false);
                }
                catch (TwowayOnlyException)
                {
                }
            }

            {
                try
                {
                    p.IceIdAsync();
                    test(false);
                }
                catch (TwowayOnlyException)
                {
                }
            }

            {
                try
                {
                    p.IceIdsAsync();
                    test(false);
                }
                catch (TwowayOnlyException)
                {
                }
            }

            {
                Callback cb = new Callback();
                p.opVoidAsync(progress: new Progress <bool>(
                                  sentSynchronously =>
                {
                    cb.sent(sentSynchronously);
                }));
                cb.check();
            }

            {
                Callback cb = new Callback();
                p.opIdempotentAsync(progress: new Progress <bool>(
                                        sentSynchronously =>
                {
                    cb.sent(sentSynchronously);
                }));
                cb.check();
            }

            {
                Callback cb = new Callback();
                p.opNonmutatingAsync(progress: new Progress <bool>(
                                         sentSynchronously =>
                {
                    cb.sent(sentSynchronously);
                }));
                cb.check();
            }

            {
                try
                {
                    p.opByteAsync(0xff, 0x0f);
                    test(false);
                }
                catch (TwowayOnlyException)
                {
                }
            }
        }