public void Purchase_Item_Quantity_Should_Be_Less_ThanEqual_To_Stock() { //Arrange var repo = new StockItemRepository(new TonerJobContext()); //Act Action action = () => PurchaseItem.Create(repo.GetStockItemById(1), 2); //Assert action.Should().Throw <ArgumentException>().WithMessage("Quantity should be less than or equal to quantity in stock!"); }
public void New_StockItem_Should_Get_Inserted_Without_Error() { //Arrange var stockItem = StockItem.Create("Epson L800 Roller", 1, 1, 1); var repo = new StockItemRepository(new StockContext()); //Act Action action = () => repo.Insert(stockItem); //Assert action.Should().NotThrow <Exception>(); }
public async Task GetStockItemsAsync_Returns_GetStockItemDtos() { //Arrange _fixture.MockStockItemService.Setup(x => x.GetStockItemsAsync()) .ReturnsAsync(_fixture.StockItems); var repository = new StockItemRepository(AutoMapperSingleton.Mapper, _fixture.MockStockItemService.Object); //Act var result = await repository.GetStockItemsAsync(); //Assert var items = result.Should().BeAssignableTo <IEnumerable <GetStockItemDto> >().Subject; items.Should().HaveCount(4); }
public async Task DeleteStockItemAsync_Returns_NoResult() { //Arrange var id = 2; _fixture.MockStockItemService.Setup(x => x.GetStockItemAsync(It.IsAny <Expression <Func <StockItem, bool> > >())) .Returns <Expression <Func <StockItem, bool> > >(expression => Task.FromResult(_fixture.StockItems.AsQueryable().FirstOrDefault(expression))); _fixture.MockStockItemService.Setup(x => x.DeleteStockItemAsync(It.IsAny <StockItem>())); var repository = new StockItemRepository(AutoMapperSingleton.Mapper, _fixture.MockStockItemService.Object); //Act await repository.DeleteStockItemAsync(id); // Assert _fixture.MockStockItemService.Verify(x => x.DeleteStockItemAsync(It.IsAny <StockItem>()), Times.Once); }
public async Task CreateStockItemAsync_Throws_ConflictException() { //Arrange _fixture.MockStockItemService.Setup(x => x.GetStockItemAsync(It.IsAny <Expression <Func <StockItem, bool> > >())) .Returns <Expression <Func <StockItem, bool> > >(expression => Task.FromResult(_fixture.StockItems.AsQueryable().FirstOrDefault(expression))); var repository = new StockItemRepository(AutoMapperSingleton.Mapper, _fixture.MockStockItemService.Object); //Act var exception = await Assert.ThrowsAsync <RestException>(() => repository.CreateStockItemAsync(new CreateStockItemDto { Name = "Rice", TypeId = 1, UnitOfMeasureId = 1, ItemUnit = 10 })); //Assert exception.ErrorCode.Should().Be(HttpStatusCode.Conflict); exception.ErrorMessage.Should().Be("Stock item is already available."); exception.ErrorType.Should().Be(HttpStatusCode.Conflict.ToString()); }
public async Task CreateStockItemAsync_Returns_New_GetStockItemDto() { //Arrange _fixture.MockStockItemService.Setup(x => x.AddStockItemAsync(It.IsAny <StockItem>())) .ReturnsAsync(_fixture.CreatedNewStockItem); var repository = new StockItemRepository(AutoMapperSingleton.Mapper, _fixture.MockStockItemService.Object); //Act var result = await repository.CreateStockItemAsync(_fixture.CreateStockItemDto); //Assert result.Should().BeOfType(typeof(GetStockItemDto)); result.Id.Should().Be(5); result.Name.Should().Be("Cream Soda"); result.StockType.Should().Be("Beverage"); result.UnitOfMeasureCode.Should().Be("ml"); }
public async Task GetStockItemAsync_Throws_NotFoundException() { //Arrange var id = 201; _fixture.MockStockItemService.Setup(x => x.GetStockItemAsync(It.IsAny <Expression <Func <StockItem, bool> > >())) .Returns <Expression <Func <StockItem, bool> > >(expression => Task.FromResult(_fixture.StockItems.AsQueryable().FirstOrDefault(expression))); var repository = new StockItemRepository(AutoMapperSingleton.Mapper, _fixture.MockStockItemService.Object); //Act var exception = await Assert.ThrowsAsync <RestException>(() => repository.GetStockItemAsync(id)); //Assert exception.ErrorCode.Should().Be(HttpStatusCode.NotFound); exception.ErrorMessage.Should().Be("Stock item not found."); exception.ErrorType.Should().Be(HttpStatusCode.NotFound.ToString()); }
public async Task GetStockItemsByTypeAsync_With_Empty_Paged_Params_Returns_StockItemEnvelop() { //Arrange _fixture.MockStockItemService.Setup(x => x.GetStockItemsAsync(d => d.TypeId == 1, 0, 10)) .ReturnsAsync(_fixture.CollectionEnvelop); var repository = new StockItemRepository(AutoMapperSingleton.Mapper, _fixture.MockStockItemService.Object); //Act var result = await repository.GetStockItemsByTypeAsync(1, null, null); //Assert var stockItemEnvelop = result.Should().BeAssignableTo <StockItemEnvelop>().Subject; stockItemEnvelop.StockItemCount.Should().Be(2); stockItemEnvelop.StockItems.Should().HaveCount(2); stockItemEnvelop.ItemsPerPage.Should().Be(10); stockItemEnvelop.TotalPages.Should().Be(1); }
public async Task GetStockItemAsync_Returns_GetStockItemDto() { //Arrange var id = 1; _fixture.MockStockItemService.Setup(x => x.GetStockItemAsync(It.IsAny <Expression <Func <StockItem, bool> > >())) .Returns <Expression <Func <StockItem, bool> > >(expression => Task.FromResult(_fixture.StockItems.AsQueryable().FirstOrDefault(expression))); var repository = new StockItemRepository(AutoMapperSingleton.Mapper, _fixture.MockStockItemService.Object); //Act var result = await repository.GetStockItemAsync(id); //Assert result.Should().BeOfType(typeof(GetStockItemDto)); result.Id.Should().Be(id); result.Name.Should().Be("Rice"); result.StockType.Should().Be("Grocery"); result.UnitOfMeasureCode.Should().Be("kg"); }