public void ServerProxy_ExecuteCommand_WithArgs_ShouldInvokeCorrectly() { //------------Setup for test-------------------------- var serverMsg = "server result"; var mockHubProxy = new Mock<IHubProxy>(); var ExpectedResult = new Receipt {PartID = 0, ResultParts = 1}; mockHubProxy.Setup(proxy => proxy.Invoke<Receipt>("ExecuteCommand", It.IsAny<Envelope>(), It.IsAny<bool>(), It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<Guid>())).Returns(new Task<Receipt>(() => ExpectedResult)); mockHubProxy.Setup(proxy => proxy.Invoke<string>("FetchExecutePayloadFragment", It.IsAny<FutureReceipt>())).Returns(new Task<string>(() => serverMsg)); var serverProxy = new TestServerProxy(); serverProxy.SetEsbProxy(mockHubProxy.Object); //------------Execute Test--------------------------- var resultOfExecution = serverProxy.ExecuteCommand(new StringBuilder("some payload"), Guid.NewGuid(), Guid.NewGuid()); //------------Assert Results------------------------- mockHubProxy.VerifyAll(); Assert.AreEqual(serverMsg, resultOfExecution.ToString()); }