public async Task Handle_ProductExists_ReturnProduct( Entities.Product product, [Frozen] Mock <IRepository <Entities.Product> > productRepoMock, GetProductQueryHandler sut, GetProductQuery query ) { // Arrange productRepoMock.Setup(x => x.GetBySpecAsync( It.IsAny <GetProductSpecification>(), It.IsAny <CancellationToken>() )) .ReturnsAsync(product); //Act var result = await sut.Handle(query, CancellationToken.None); //Assert result.Should().NotBeNull(); productRepoMock.Verify(x => x.GetBySpecAsync( It.IsAny <GetProductSpecification>(), It.IsAny <CancellationToken>() )); result.ProductNumber.Should().Be(product.ProductNumber); }
public ProductTests() { _getCategoryBaseQuery = new GetCategoryBaseQuery(DbContext, Cache); _getProductQuery = new GetProductQuery(DbContext, _getCategoryBaseQuery); _listProductsQuery = new ListProductsQuery(DbContext); _getProductQueryHandler = new GetProductQueryHandler(_getProductQuery); _listProductsQueryHandler = new ListProductsQueryHandler(_listProductsQuery); }
public GetProductQueryHandlerTests() { _handler = new GetProductQueryHandler(Context, Mapper); _query = new GetProductQuery { Id = TestContext.TestProductCommon.Id }; }
public async Task GetFail() { var sut = new GetProductQueryHandler(_context, _mapper); Exception ex = await Assert.ThrowsAsync <NotFoundException>(() => sut.Handle(new GetProductQuery { Id = 10 }, CancellationToken.None)); ex.Message.ShouldBe("Entity \"Product\" (10) was not found."); }
public async Task Get() { var sut = new GetProductQueryHandler(_context, _mapper); var result = await sut.Handle(new GetProductQuery { Id = 1 }, CancellationToken.None); result.ShouldBeOfType <ProductViewModel>(); result.ProductId.ShouldBe(1); result.ProductName.ShouldBe("KeyBoard"); }
public async Task Handle_GivenValidId_ReturnsCorrectProduct() { var query = new GetProductQuery { Id = 999 }; var sut = new GetProductQueryHandler(_context); var result = await sut.Handle(query, CancellationToken.None); result.ProductId.ShouldBe(999); }
public GetProductQueryHandlerTest() { mapper = new Mock <IMapper>(); productRepository = new Mock <IProductRepository>(); query = new GetProductQuery(productId); queryHandler = new GetProductQueryHandler(productRepository.Object, mapper.Object); product = new Product { ProductName = productName }; productDto = new GetProductDto { ProductName = productName }; }
public async Task GetAsync() { var dataAccess = new ProductDataAccess(this.Context, Mapper()); //Act var sutCreate = new CreateProductCommandHandler(dataAccess); var resultCreate = await sutCreate.Handle(new CreateProductCommand { Data = ProductTestData.ProductDTO }, CancellationToken.None); //Act var sutGet = new GetProductQueryHandler(dataAccess); var resultGet = await sutGet.Handle(new GetProductQuery { Id = resultCreate.Data.Id }, CancellationToken.None); Assert.IsTrue(resultGet?.Data != null); }
public async Task Should_ThrowArguementException_WhenRecordNotFound() { var productName = Guid.NewGuid().ToString(); var testProduct = new Product() { Active = true, ModifiedOn = DateTime.Now, Name = productName, Price = 15 }; await testProduct.SaveAsync(); var handler = new GetProductQueryHandler(); var testQuery = new Queries.GetProductQuery() { ProductId = ObjectId.GenerateNewId().ToString() }; Assert.ThrowsAsync <ArgumentException>(async() => await handler.Handle(testQuery, default)); }
public async Task Should_ThrowFormatException_WhenQueryIsInvalid() { var productName = Guid.NewGuid().ToString(); var testProduct = new Product() { Active = true, ModifiedOn = DateTime.Now, Name = productName, Price = 15 }; await testProduct.SaveAsync(); var handler = new GetProductQueryHandler(); var testQuery = new Queries.GetProductQuery() { ProductId = "test" }; Assert.ThrowsAsync <FormatException>(async() => await handler.Handle(testQuery, default)); }
public async Task Should_ReturnValidProductDTO_WhenQueryIsValid() { var productName = Guid.NewGuid().ToString(); var testProduct = new Product() { Active = true, ModifiedOn = DateTime.Now, Name = productName, Price = 15 }; await testProduct.SaveAsync(); var handler = new GetProductQueryHandler(); var result = await handler.Handle(new Queries.GetProductQuery() { ProductId = testProduct.ID }, default); Assert.NotNull(result); Assert.AreEqual(productName, result.Name); Assert.AreEqual(15, result.Price); Assert.IsTrue(result.Active); }
public void Handle_ProductDoesNotExists_ThrowArgumentNullException( //Entities.Product product, [Frozen] Mock <IRepository <Entities.Product> > productRepoMock, GetProductQueryHandler sut, GetProductQuery query ) { // Arrange productRepoMock.Setup(x => x.GetBySpecAsync( It.IsAny <GetProductSpecification>(), It.IsAny <CancellationToken>() )) .ReturnsAsync((Entities.Product)null); //Act Func <Task> func = async() => await sut.Handle(query, CancellationToken.None); //Assert func.Should().ThrowAsync <ArgumentNullException>(); productRepoMock.Verify(x => x.GetBySpecAsync( It.IsAny <GetProductSpecification>(), It.IsAny <CancellationToken>() )); }