summaryrefslogtreecommitdiff
path: root/csharp/test/Ice/interceptor/Client.cs
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2015-03-21 15:35:40 -0230
committerMatthew Newhook <matthew@zeroc.com>2015-03-21 15:35:40 -0230
commit630a37d2fe66f24518299e705f958b571803c522 (patch)
tree969723791bdc4d73bb099c19d45554d0ca241ad9 /csharp/test/Ice/interceptor/Client.cs
parentFix some README.md markdown formatting (diff)
downloadice-630a37d2fe66f24518299e705f958b571803c522.tar.bz2
ice-630a37d2fe66f24518299e705f958b571803c522.tar.xz
ice-630a37d2fe66f24518299e705f958b571803c522.zip
py -> python
rb -> ruby objc -> objective-c cs -> csharp
Diffstat (limited to 'csharp/test/Ice/interceptor/Client.cs')
-rw-r--r--csharp/test/Ice/interceptor/Client.cs264
1 files changed, 264 insertions, 0 deletions
diff --git a/csharp/test/Ice/interceptor/Client.cs b/csharp/test/Ice/interceptor/Client.cs
new file mode 100644
index 00000000000..984c6a99d96
--- /dev/null
+++ b/csharp/test/Ice/interceptor/Client.cs
@@ -0,0 +1,264 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+using System;
+using System.Diagnostics;
+using System.Reflection;
+
+[assembly: CLSCompliant(true)]
+
+[assembly: AssemblyTitle("IceTest")]
+[assembly: AssemblyDescription("Ice test")]
+[assembly: AssemblyCompany("ZeroC, Inc.")]
+
+public class Client
+{
+ public class App : Ice.Application
+ {
+ private static void test(bool b)
+ {
+ if(!b)
+ {
+ throw new Exception();
+ }
+ }
+
+ private int run(Test.MyObjectPrx prx, InterceptorI interceptor)
+ {
+ Console.Out.Write("testing simple interceptor... ");
+ Console.Out.Flush();
+ test(interceptor.getLastOperation() == null);
+ test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchAsync);
+ prx.ice_ping();
+ test(interceptor.getLastOperation().Equals("ice_ping"));
+ test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchOK);
+ String typeId = prx.ice_id();
+ test(interceptor.getLastOperation().Equals("ice_id"));
+ test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchOK);
+ test(prx.ice_isA(typeId));
+ test(interceptor.getLastOperation().Equals("ice_isA"));
+ test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchOK);
+ test(prx.add(33, 12) == 45);
+ test(interceptor.getLastOperation().Equals("add"));
+ test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchOK));
+ Console.WriteLine("ok");
+ Console.Out.Write("testing retry... ");
+ Console.Out.Flush();
+ test(prx.addWithRetry(33, 12) == 45);
+ test(interceptor.getLastOperation().Equals("addWithRetry"));
+ test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchOK));
+ Console.WriteLine("ok");
+ Console.Out.Write("testing user exception... ");
+ Console.Out.Flush();
+ try
+ {
+ prx.badAdd(33, 12);
+ test(false);
+ }
+ catch(Test.InvalidInputException)
+ {
+ // expected
+ }
+ test(interceptor.getLastOperation().Equals("badAdd"));
+ test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchUserException));
+ Console.WriteLine("ok");
+ Console.Out.Write("testing ONE... ");
+ Console.Out.Flush();
+ interceptor.clear();
+ try
+ {
+ prx.notExistAdd(33, 12);
+ test(false);
+ }
+ catch(Ice.ObjectNotExistException)
+ {
+ // expected
+ }
+ test(interceptor.getLastOperation().Equals("notExistAdd"));
+ test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchAsync);
+ Console.WriteLine("ok");
+ Console.Out.Write("testing system exception... ");
+ Console.Out.Flush();
+ interceptor.clear();
+ try
+ {
+ prx.badSystemAdd(33, 12);
+ test(false);
+ }
+ catch(Ice.UnknownException)
+ {
+ test(!prx.ice_isCollocationOptimized());
+ }
+ catch(MySystemException)
+ {
+ test(prx.ice_isCollocationOptimized());
+ }
+ catch(Exception)
+ {
+ test(false);
+ }
+ test(interceptor.getLastOperation().Equals("badSystemAdd"));
+ test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchAsync);
+ Console.WriteLine("ok");
+ if(!prx.ice_isCollocationOptimized())
+ {
+ Console.Out.Write("testing simple AMD... ");
+ Console.Out.Flush();
+ test(prx.amdAdd(33, 12) == 45);
+ test(interceptor.getLastOperation().Equals("amdAdd"));
+ test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchAsync));
+ Console.WriteLine("ok");
+ }
+ return 0;
+ }
+
+ private int runAmd(Test.MyObjectPrx prx, AMDInterceptorI interceptor)
+ {
+ Console.Out.Write("testing simple interceptor... ");
+ Console.Out.Flush();
+ test(interceptor.getLastOperation() == null);
+ test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchAsync);
+ test(prx.amdAdd(33, 12) == 45);
+ test(interceptor.getLastOperation().Equals("amdAdd"));
+ test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchAsync));
+ test(interceptor.getActualStatus().Equals(Ice.DispatchStatus.DispatchOK));
+ Console.WriteLine("ok");
+ Console.Out.Write("testing retry... ");
+ Console.Out.Flush();
+ test(prx.amdAddWithRetry(33, 12) == 45);
+ test(interceptor.getLastOperation().Equals("amdAddWithRetry"));
+ test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchAsync));
+ test(interceptor.getActualStatus().Equals(Ice.DispatchStatus.DispatchOK));
+ Console.WriteLine("ok");
+ Console.Out.Write("testing user exception... ");
+ Console.Out.Flush();
+ try
+ {
+ prx.amdBadAdd(33, 12);
+ test(false);
+ }
+ catch(Test.InvalidInputException)
+ {
+ // expected
+ }
+ test(interceptor.getLastOperation().Equals("amdBadAdd"));
+ test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchAsync));
+ test(interceptor.getActualStatus().Equals(Ice.DispatchStatus.DispatchUserException));
+ Console.WriteLine("ok");
+ Console.Out.Write("testing ONE... ");
+ Console.Out.Flush();
+ interceptor.clear();
+ try
+ {
+ prx.amdNotExistAdd(33, 12);
+ test(false);
+ }
+ catch(Ice.ObjectNotExistException)
+ {
+ // expected
+ }
+ test(interceptor.getLastOperation().Equals("amdNotExistAdd"));
+ test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchAsync));
+ test(interceptor.getActualStatus() == Ice.DispatchStatus.DispatchAsync);
+ test(interceptor.getException() is Ice.ObjectNotExistException);
+ Console.WriteLine("ok");
+ Console.Out.Write("testing system exception... ");
+ Console.Out.Flush();
+ interceptor.clear();
+ try
+ {
+ prx.amdBadSystemAdd(33, 12);
+ test(false);
+ }
+ catch(Ice.UnknownException)
+ {
+ test(!prx.ice_isCollocationOptimized());
+ }
+ catch(MySystemException)
+ {
+ test(prx.ice_isCollocationOptimized());
+ }
+ catch(Exception)
+ {
+ test(false);
+ }
+ test(interceptor.getLastOperation().Equals("amdBadSystemAdd"));
+ test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchAsync));
+ test(interceptor.getActualStatus() == Ice.DispatchStatus.DispatchAsync);
+ test(interceptor.getException() is MySystemException);
+ Console.WriteLine("ok");
+ return 0;
+ }
+
+ public override int run(string[] args)
+ {
+ //
+ // Create OA and servants
+ //
+
+ communicator().getProperties().setProperty("MyOA.AdapterId", "myOA");
+
+ Ice.ObjectAdapter oa = communicator().createObjectAdapterWithEndpoints("MyOA2", "tcp -h localhost");
+
+ Ice.Object servant = new MyObjectI();
+ InterceptorI interceptor = new InterceptorI(servant);
+ AMDInterceptorI amdInterceptor = new AMDInterceptorI(servant);
+
+ Test.MyObjectPrx prx = Test.MyObjectPrxHelper.uncheckedCast(oa.addWithUUID(interceptor));
+ Test.MyObjectPrx prxForAMD = Test.MyObjectPrxHelper.uncheckedCast(oa.addWithUUID(amdInterceptor));
+
+ Console.WriteLine("Collocation optimization on");
+ int rs = run(prx, interceptor);
+ if(rs != 0)
+ {
+ return rs;
+ }
+
+ Console.WriteLine("Now with AMD");
+ rs = runAmd(prxForAMD, amdInterceptor);
+ if(rs != 0)
+ {
+ return rs;
+ }
+
+ oa.activate(); // Only necessary for non-collocation optimized tests
+
+ Console.WriteLine("Collocation optimization off");
+ interceptor.clear();
+ prx = Test.MyObjectPrxHelper.uncheckedCast(prx.ice_collocationOptimized(false));
+ rs = run(prx, interceptor);
+ if(rs != 0)
+ {
+ return rs;
+ }
+
+ Console.WriteLine("Now with AMD");
+ amdInterceptor.clear();
+ prxForAMD = Test.MyObjectPrxHelper.uncheckedCast(prxForAMD.ice_collocationOptimized(false));
+ rs = runAmd(prxForAMD, amdInterceptor);
+
+ return rs;
+ }
+ }
+
+ public static int Main(string[] args)
+ {
+ App app = new App();
+ Ice.InitializationData data = new Ice.InitializationData();
+#if COMPACT
+ //
+ // When using Ice for .NET Compact Framework, we need to specify
+ // the assembly so that Ice can locate classes and exceptions.
+ //
+ data.properties = Ice.Util.createProperties();
+ data.properties.setProperty("Ice.FactoryAssemblies", "client");
+#endif
+ return app.main(args, data);
+ }
+}