public async Task GivenARequestForAProductThatExists_ReturnsExpectedResult() { // Arrange. var logger = new Mock <ILogger <Samples.AspNetCoreMvc.Handlers.GetProduct.Handler> >(); var handler = new Samples.AspNetCoreMvc.Handlers.GetProduct.Handler(logger.Object); var query = new Samples.AspNetCoreMvc.Handlers.GetProduct.Input { ProductId = 1 }; var expectedModel = new Samples.AspNetCoreMvc.Handlers.GetProduct.Output { ProductId = query.ProductId, Name = $"Product #{query.ProductId}" }; // Act. var result = await _client.GetAsync($"/products/{query.ProductId}"); // Assert. result.ShouldNotBeNull(); result.StatusCode.ShouldBe(HttpStatusCode.OK); result.Content.ShouldNotBeNull(); var resultObj = JsonConvert.DeserializeObject <Samples.AspNetCoreMvc.Handlers.GetProduct.Output>(await result.Content.ReadAsStringAsync()); resultObj.ProductId.ShouldBe(expectedModel.ProductId); resultObj.Name.ShouldBe(expectedModel.Name); }
public async Task GivenARequestForAProductThatDoesntExist_ReturnsExpectedResult() { // Arrange. var logger = new Mock <ILogger <Samples.AspNetCoreMvc.Handlers.GetProduct.Handler> >(); var handler = new Samples.AspNetCoreMvc.Handlers.GetProduct.Handler(logger.Object); var query = new Samples.AspNetCoreMvc.Handlers.GetProduct.Input { ProductId = 0 }; // Act. var result = await _client.GetAsync($"/products/{query.ProductId}"); // Assert. result.ShouldNotBeNull(); result.StatusCode.ShouldBe(HttpStatusCode.NotFound); }