public async Task DeveRetornarErroSeProdutoJaExisteNoBanco() { var handler = new ProdutoCommandHandler(_produtoRepository, _mediator); var command = new CriarProdutoCommand(_helperEntitiesTest.Nome.Nome, 10.25m); var retorno = await handler.Handle(command, new CancellationToken()); Assert.Equal(Guid.Empty, retorno); }
public async Task QuandoAdicionarProdutoComDescricaoJaExistenteEntaoOProdutoNaoDeveSerSalvo() { //Arrange var commandTest = new AdicionarProdutoCommand("Produto1", 10, 10); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var entity = ProdutoRepositorioTest.GetByDescricao(commandTest.ProdutoDescricao); Assert.NotNull(entity); Assert.Equal("Já existe produto com esta descrição", result); }
public async Task QuandoAdicionarProdutoComQtdEstoqueInvalidoEntaoOProdutoNaoDeveSerSalvo() { //Arrange var commandTest = new AdicionarProdutoCommand("Produto6", 10, -10); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var entity = ProdutoRepositorioTest.GetByDescricao(commandTest.ProdutoDescricao); Assert.Null(entity); Assert.Equal("Quantidade em estoque não pode ser negativa", result); }
public async Task QuandoAdicionarProdutoComValorInvalidoEntaoOProdutoNaoDeveSerSalvo() { //Arrange var commandTest = new AdicionarProdutoCommand("Produto5", -1, 1); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var entity = ProdutoRepositorioTest.GetByDescricao(commandTest.ProdutoDescricao); Assert.Null(entity); Assert.Equal("Valor do produto não pode ser negativo", result); }
public async Task QuandoAdicionarProdutoValidoEntaoOProdutoDeveSerSalvo() { //Arrange var commandTest = new AdicionarProdutoCommand("Produto4", 120, 12); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var entity = ProdutoRepositorioTest.GetById(Guid.Parse(result)); Assert.NotNull(entity); Assert.Equal("Produto4", entity.ProdutoDescricao); Assert.Equal(120, entity.ProdutoValor); Assert.Equal(12, entity.ProdutoQtdEstoque); }
public async Task QuandoAlterarProdutoComDadosValidosEntaoOProdutoDeveSerAlterado() { //Arrange var produto = ProdutoRepositorioTest.GetByDescricao("Produto1"); var commandTest = new AlterarProdutoCommand(produto.Id, "Produto1Teste", 1, 1); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var produtoAtualizado = ProdutoRepositorioTest.GetById(Guid.Parse(result)); Assert.NotNull(produtoAtualizado); Assert.Equal("Produto1Teste", produtoAtualizado.ProdutoDescricao); Assert.Equal(1, produtoAtualizado.ProdutoValor); Assert.Equal(1, produtoAtualizado.ProdutoQtdEstoque); }
public async Task QuandoAlterarProdutoNaoExistenteEntaoOProdutoNaoDeveSerAlterado() { //Arrange var produto = ProdutoRepositorioTest.GetByDescricao("Produto3"); var commandTest = new AlterarProdutoCommand(Guid.NewGuid(), "Produto3", 1, 1); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var produtoAtualizado = ProdutoRepositorioTest.GetByDescricao("Produto3"); Assert.NotNull(produtoAtualizado); Assert.Equal("Produto não encotrando para o id informado", result); Assert.Equal(produto.ProdutoDescricao, produtoAtualizado.ProdutoDescricao); Assert.Equal(produto.ProdutoValor, produtoAtualizado.ProdutoValor); Assert.Equal(produto.ProdutoQtdEstoque, produtoAtualizado.ProdutoQtdEstoque); }
public async Task QuandoAlterarDescricaoProdutoParaDescricaoJaExistenteEntaoOProdutoNaoDeveSerAlterado() { //Arrange var produto = ProdutoRepositorioTest.GetByDescricao("Produto3"); var commandTest = new AlterarProdutoCommand(produto.Id, "Produto2", 1, 1); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var produtoAtualizado = ProdutoRepositorioTest.GetByDescricao("Produto3"); Assert.NotNull(produtoAtualizado); Assert.Equal("Já existe produto com esta descrição", result); Assert.Equal(produto.ProdutoDescricao, produtoAtualizado.ProdutoDescricao); Assert.Equal(produto.ProdutoValor, produtoAtualizado.ProdutoValor); Assert.Equal(produto.ProdutoQtdEstoque, produtoAtualizado.ProdutoQtdEstoque); }
public async Task QuandoAlterarProdutoComQtdEstoqueInvalidoEntaoOProdutoNaoDeveSerAlterado() { //Arrange var produto = ProdutoRepositorioTest.GetByDescricao("Produto3"); var commandTest = new AlterarProdutoCommand(produto.Id, "Produto3Teste", 1, -1); var handler = new ProdutoCommandHandler(ProdutoRepositorioTest); //Act var result = await handler.Handle(commandTest, CancellationToken.None); //Assert var produtoAtualizado = ProdutoRepositorioTest.GetByDescricao("Produto3"); Assert.NotNull(produtoAtualizado); Assert.Equal("Quantidade em estoque não pode ser negativa", result); Assert.Equal(produto.ProdutoDescricao, produtoAtualizado.ProdutoDescricao); Assert.Equal(produto.ProdutoValor, produtoAtualizado.ProdutoValor); Assert.Equal(produto.ProdutoQtdEstoque, produtoAtualizado.ProdutoQtdEstoque); }