private void RunAmd(IMyObjectPrx prx, Interceptor interceptor) { System.IO.TextWriter output = GetWriter(); output.Write("testing simple interceptor... "); output.Flush(); Assert(interceptor.GetLastOperation() == null); Assert(!interceptor.AsyncCompletion); Assert(prx.AmdAdd(33, 12) == 45); Assert(interceptor.GetLastOperation() !.Equals("amdAdd")); Assert(interceptor.AsyncCompletion); output.WriteLine("ok"); output.Write("testing retry... "); output.Flush(); Assert(prx.AmdAddWithRetry(33, 12) == 45); Assert(interceptor.GetLastOperation() !.Equals("amdAddWithRetry")); Assert(interceptor.AsyncCompletion); { var ctx = new Dictionary <string, string> { { "retry", "yes" } }; for (int i = 0; i < 10; ++i) { Assert(prx.AmdAdd(33, 12, ctx) == 45); Assert(interceptor.GetLastOperation() !.Equals("amdAdd")); Assert(interceptor.AsyncCompletion); } } output.WriteLine("ok"); output.Write("testing user exception... "); try { prx.AmdBadAdd(33, 12); Assert(false); } catch (InvalidInputException) { // expected } Assert(interceptor.GetLastOperation() !.Equals("amdBadAdd")); Assert(interceptor.AsyncCompletion); Console.WriteLine("ok"); output.Write("testing ONE... "); output.Flush(); interceptor.Clear(); try { prx.AmdNotExistAdd(33, 12); Assert(false); } catch (ObjectNotExistException) { // expected } Assert(interceptor.GetLastOperation() !.Equals("amdNotExistAdd")); Assert(interceptor.AsyncCompletion); output.WriteLine("ok"); output.Write("testing exceptions raised by the interceptor... "); output.Flush(); TestInterceptorExceptions(prx); output.WriteLine("ok"); }