public async Task SellPlayerCallsPutHandlerReturns200ThenCallsPostHandlerAndReturnsSellingAsync() { //Arrange var token = "ABC"; var startPrice = 1100; var binPrice = 1200; var playerId = "12345"; var tradeId = "54321"; A.CallTo(() => _putRequestHandler.MovePlayerToTradePile(tradeId, playerId, token)) .Returns(HttpStatusCode.OK); A.CallTo(() => _postRequestHandler.SellPlayer(playerId, token, startPrice, binPrice)) .Returns("Selling"); //Act var actual = await _ApiGateway.SellPlayer(tradeId, playerId, token, startPrice, binPrice); //Assert Assert.AreEqual("Selling", actual); A.CallTo(() => _putRequestHandler.MovePlayerToTradePile(tradeId, playerId, token)).MustHaveHappenedOnceExactly(); A.CallTo(() => _postRequestHandler.SellPlayer(playerId, token, startPrice, binPrice)).MustHaveHappenedOnceExactly(); }