public async Task SellPlayerCallsUrlBuilderThenRequestMakerReturns200ThenStatusCodeHandlerReturnsSellingAsync() { //Arrange A.CallTo(() => _urlBuilder.GetAuctionUrl()).Returns("Jeff"); A.CallTo(() => _postRequestMaker.SellPlayer("Jeff", _token, A <SellPlayerModel> .Ignored)).Returns(HttpStatusCode.OK); A.CallTo(() => _statusCodeHandler.HandleSellingStatusCode(HttpStatusCode.OK)).Returns("Selling"); //Act var actual = await _postRequestHandler.SellPlayer(_playerId, _token, _startPrice, _binPrice); //Assert Assert.AreEqual("Selling", actual); A.CallTo(() => _urlBuilder.GetAuctionUrl()).MustHaveHappenedOnceExactly(); A.CallTo(() => _postRequestMaker.SellPlayer("Jeff", _token, A <SellPlayerModel> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => _statusCodeHandler.HandleSellingStatusCode(HttpStatusCode.OK)).MustHaveHappenedOnceExactly(); }
public async Task <string> SellPlayer(string playerId, string accessToken, int startPrice, int binPrice) { var url = _urlBuilder.GetAuctionUrl(); var sellModel = new SellPlayerModel { StartPrice = startPrice, BinPrice = binPrice, Duration = 3600, ItemData = new SellItemDataModel { playerId = playerId } }; var statusCode = await _postRequestMaker.SellPlayer(url, accessToken, sellModel); var sellMessage = _statusCodeHandler.HandleSellingStatusCode(statusCode); return(sellMessage); }