public void VerifyBasicSendReceive() { var fooStub = new FooStub(); fooStub.ReturnValueOfBar = "Bar"; var dispatcherThread = new DispatcherThread(Dispatcher.Run); dispatcherThread.Start(); var ipcServer = new IpcServer<IFoo>(fooStub, dispatcherThread.Dispatcher, IPAddress.Loopback, 62000, new JsonDotNetSerializer()); ipcServer.Listen(); var ipcClient = new IpcClient<IFoo>(IPAddress.Loopback, 62000, new JsonDotNetSerializer()); object response; ipcClient.Proxy.Foo(); Assert.AreEqual(1, fooStub.NumberOfFooCalls); response = ipcClient.Proxy.Bar(); Assert.AreEqual(fooStub.ReturnValueOfBar, response); Assert.AreEqual(1, fooStub.NumberOfBarCalls); ipcClient.Dispose(); ipcServer.Dispose(); dispatcherThread.Shutdown(); }
public void VerifyPerformance() { var fooStub = new FooStub(); fooStub.ReturnValueOfBar = "Bar"; var dispatcherThread = new DispatcherThread(Dispatcher.Run); dispatcherThread.Start(); var ipcServer = new IpcServer<IFoo>(fooStub, dispatcherThread.Dispatcher, IPAddress.Loopback, 62000, new JsonDotNetSerializer()); ipcServer.Listen(); var ipcClient = new IpcClient<IFoo>(IPAddress.Loopback, 62000, new JsonDotNetSerializer()); var numberOfCalls = 1000; var nanoSecs = Performance.MeasureMs(() => { for (var i = 0; i < numberOfCalls; i++) { ipcClient.Proxy.Foo(); } }); var fooAverageMs = nanoSecs/numberOfCalls; Console.WriteLine("Foo call took: {0}ms", fooAverageMs); Assert.AreEqual(numberOfCalls, fooStub.NumberOfFooCalls); Assert.LessOrEqual(TimeSpan.FromMilliseconds(fooAverageMs), TimeSpan.FromMilliseconds(10)); nanoSecs = Performance.MeasureMs(() => { for (var i = 0; i < numberOfCalls; i++) { ipcClient.Proxy.Bar(); } }); var barAverageMs = nanoSecs/numberOfCalls; Console.WriteLine("Bar call took: {0}ms", barAverageMs); Assert.AreEqual(numberOfCalls, fooStub.NumberOfBarCalls); Assert.LessOrEqual(TimeSpan.FromMilliseconds(barAverageMs), TimeSpan.FromMilliseconds(10)); ipcClient.Dispose(); ipcServer.Dispose(); dispatcherThread.Shutdown(); }
public void Setup() { _fooStub = new FooStub(); }