public void PlaceOrderExpected() { IDeserializer deserializer = null; var restMock = new Mock <IRestClient>(MockBehavior.Strict); restMock.SetupAllProperties(); restMock.Setup(x => x.AddHandler("application/json", It.IsAny <IDeserializer>())).Callback <string, IDeserializer>((ct, d) => deserializer = d); restMock.Setup(x => x.Execute <ResponseSingle <TradeOrder> >(It.IsAny <IRestRequest>())).Returns <IRestRequest>(request => { var responseMock = new Mock <IRestResponse <ResponseSingle <TradeOrder> > >(MockBehavior.Strict); responseMock.SetupAllProperties(); responseMock.Object.Content = Properties.Resources.PlaceOrderResponse; responseMock.Object.Request = request; responseMock.Object.Data = deserializer.Deserialize <ResponseSingle <TradeOrder> >(responseMock.Object); return(responseMock.Object); }); var client = new BitsoClient(restMock.Object, ServiceUrlMock, ApiKeyMock, ApiSecretMock); var instruction = new TradeInstruction(); instruction.Price = 1000; instruction.MajorCurrencyAmount = 1; instruction.OrderType = TradeOrderType.Limit; instruction.Side = MarketSide.Buy; instruction.BookName = "btc_mxn"; var res = client.PlaceOrder(instruction); Assert.IsNotNull(res); }