public void ServerProxy_ExecuteCommand_WithArgs_ShouldInvokeCorrectly()
{
//------------Setup for test--------------------------
const string serverMsg = "server result";
var mockHubProxy = new Mock<IHubProxyWrapper>();
var receipt = new Receipt();
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>(() => receipt));
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());
//------------Assert Results-------------------------
mockHubProxy.VerifyAll();
Assert.AreEqual(serverMsg, resultOfExecution.ToString());
}