private void runAmdTest(IMyObjectPrx prx, Interceptor interceptor) { var output = getWriter(); output.Write("testing simple interceptor... "); output.Flush(); test(interceptor.getLastOperation() == null); test(!interceptor.getLastStatus()); test(prx.amdAdd(33, 12) == 45); test(interceptor.getLastOperation().Equals("amdAdd")); test(interceptor.getLastStatus()); output.WriteLine("ok"); output.Write("testing retry... "); output.Flush(); test(prx.amdAddWithRetry(33, 12) == 45); test(interceptor.getLastOperation().Equals("amdAddWithRetry")); test(interceptor.getLastStatus()); { var ctx = new Dictionary <string, string>(); ctx.Add("retry", "yes"); for (int i = 0; i < 10; ++i) { test(prx.amdAdd(33, 12, ctx) == 45); test(interceptor.getLastOperation().Equals("amdAdd")); test(interceptor.getLastStatus()); } } output.WriteLine("ok"); output.Write("testing user exception... "); try { prx.amdBadAdd(33, 12); test(false); } catch (InvalidInputException) { // expected } test(interceptor.getLastOperation().Equals("amdBadAdd")); test(interceptor.getLastStatus()); Console.WriteLine("ok"); output.Write("testing ONE... "); output.Flush(); interceptor.clear(); try { prx.amdNotExistAdd(33, 12); test(false); } catch (ObjectNotExistException) { // expected } test(interceptor.getLastOperation().Equals("amdNotExistAdd")); test(interceptor.getLastStatus()); output.WriteLine("ok"); output.Write("testing system exception... "); output.Flush(); interceptor.clear(); try { prx.amdBadSystemAdd(33, 12); test(false); } catch (UnknownException) { test(!prx.IsCollocationOptimized); } catch (MySystemException) { test(prx.IsCollocationOptimized); } catch (Exception) { test(false); } test(interceptor.getLastOperation().Equals("amdBadSystemAdd")); test(interceptor.getLastStatus()); output.WriteLine("ok"); output.Write("testing exceptions raised by the interceptor... "); output.Flush(); testInterceptorExceptions(prx); output.WriteLine("ok"); }