public async Task GivenAnOrderForAProductThatExists_ReturnsExpectedResult(bool includeModel) { // Arrange. var logger = new Mock <ILogger <Samples.AspNetCoreMvc.Handlers.OrderProduct.Handler> >(); var handler = new Samples.AspNetCoreMvc.Handlers.OrderProduct.Handler(logger.Object); var command = new Samples.AspNetCoreMvc.Handlers.OrderProduct.Input { ProductId = 1, IncludeModel = includeModel }; var expectedModel = new Samples.AspNetCoreMvc.Handlers.OrderProduct.Output { OrderId = command.ProductId + 1 }; // Act. var result = await _client.PostAsync("/orders", new JsonContent(command)); // Assert. result.ShouldNotBeNull(); result.StatusCode.ShouldBe(HttpStatusCode.Created); if (includeModel) { result.Content.ShouldNotBeNull(); var resultObj = JsonConvert.DeserializeObject <Samples.AspNetCoreMvc.Handlers.OrderProduct.Output>(await result.Content.ReadAsStringAsync()); resultObj.ShouldNotBeNull(); resultObj.OrderId.ShouldBe(expectedModel.OrderId); } }
public async Task GivenAnOrderForAProductThatCausesAConflict_ReturnsExpectedResult() { // Arrange. var logger = new Mock <ILogger <Samples.AspNetCoreMvc.Handlers.OrderProduct.Handler> >(); var handler = new Samples.AspNetCoreMvc.Handlers.OrderProduct.Handler(logger.Object); var command = new Samples.AspNetCoreMvc.Handlers.OrderProduct.Input { ProductId = 1, CauseConflict = true }; // Act. var result = await _client.PostAsync("/orders", new JsonContent(command)); // Assert. result.ShouldNotBeNull(); result.StatusCode.ShouldBe(HttpStatusCode.Conflict); }