public void Details_ReturnsView() { // Arrange var expectedInventoryItem = CreateTestInventoryItems()[0]; var queryFixture = new InventoryItemQuery() { InventoryItemId = expectedInventoryItem.InventoryItemId }; var expectedViewModel = new Fixture().Create <DetailsViewModel>(); var mockQueryHandler = new Mock <IQueryHandlerAsync <InventoryItemQuery, InventoryItem> >(); mockQueryHandler.Setup(x => x.HandleAsync(queryFixture)).ReturnsAsync(expectedInventoryItem); mockMapper.Setup(x => x.Map <DetailsViewModel>(expectedInventoryItem)).Returns(expectedViewModel); // Action var result = this.sut.Details(mockQueryHandler.Object, queryFixture).Result as ViewResult; // Assert result.Should().BeOfType <ViewResult>(); var actualViewModel = result.Model as DetailsViewModel; actualViewModel.Should().BeOfType <DetailsViewModel>(); actualViewModel.ShouldBeEquivalentTo(expectedViewModel); }
public async Task <IActionResult> Details( [FromServices] IQueryHandlerAsync <InventoryItemQuery, Queries.InventoryItem> queryHandler, InventoryItemQuery query) { var inventoryItem = await queryHandler.HandleAsync(query); if (inventoryItem == null) { return(NotFound()); } var vm = mapper.Map <DetailsViewModel>(inventoryItem); return(View(vm)); }
public void Details_ReturnsNotFound_WhenItemDoesNotExist() { // Arrange var queryFixture = new InventoryItemQuery() { InventoryItemId = 1 }; var mockQueryHandler = new Mock <IQueryHandlerAsync <InventoryItemQuery, InventoryItem> >(); mockQueryHandler.Setup(x => x.HandleAsync(queryFixture)).ReturnsAsync((InventoryItem)null); // Action var result = this.sut.Details(mockQueryHandler.Object, queryFixture).Result as NotFoundResult; // Assert result.Should().BeOfType <NotFoundResult>(); }
public async Task <IActionResult> Edit( [FromServices] IQueryHandlerAsync <InventoryItemQuery, Queries.InventoryItem> queryHandler, InventoryItemQuery query, [FromServices] IQueryHandlerAsync <BrandsQuery, List <Queries.Brand> > brandsQueryHandler, [FromServices] IQueryHandlerAsync <CategoriesQuery, List <Queries.Category> > categoriesQueryHandler) { var inventoryItem = await queryHandler.HandleAsync(query); if (inventoryItem == null) { return(NotFound()); } var brands = await brandsQueryHandler.HandleAsync(new BrandsQuery()); var categories = await categoriesQueryHandler.HandleAsync(new CategoriesQuery()); var vm = mapper.Map <EditViewModel>(inventoryItem); vm.Brands = brands; vm.Categories = categories; return(View(vm)); }