public async Task EditDespesaMensalCommandValidar() { var commandBuilder = new EditDespesaMensalCommandBuilder().Instanciar(); commandBuilder.IsValid(); _mocker.GetMock <IMediator>().Setup(x => x.Publish(It.IsAny <DomainNotification>(), default)) .Returns(Task.CompletedTask) .Callback <DomainNotification, CancellationToken>((notification, token) => { notification.Should().NotBeNull(); commandBuilder.ValidationResult.Errors .FirstOrDefault(x => x.PropertyName == notification.Key && x.ErrorMessage == notification.Value) .Should().NotBeNull(); token.IsCancellationRequested.Should().BeFalse(); }); var resultado = await _commandHandler.Handle(commandBuilder, default); resultado.Should().BeFalse(); commandBuilder.IsValid().Should().BeFalse(); commandBuilder.ValidationResult.Errors.Should().HaveCount(5); _mocker.Verify <IMediator>(x => x.Publish(It.IsAny <DomainNotification>(), default), Times.Exactly(5)); _mocker.Verify <IDespesaMensalRepository>(x => x.AddAsync(It.IsAny <DespesaMensal>(), default), Times.Never); _mocker.Verify <IDespesaMensalRepository>(x => x.UpdateAsync(It.IsAny <DespesaMensal>(), default), Times.Never); _mocker.Verify <IDespesaMensalRepository>(x => x.DeleteAsync(It.IsAny <DespesaMensal>(), default), Times.Never); _mocker.Verify <ISalarioRepository>(x => x.GetByIdAsync(It.IsAny <Guid>(), default), Times.Never); _mocker.Verify <ISalarioRepository>(x => x.AddAsync(It.IsAny <Salario>(), default), Times.Never); _mocker.Verify <ISalarioRepository>(x => x.UpdateAsync(It.IsAny <Salario>(), default), Times.Never); _mocker.Verify <ISalarioRepository>(x => x.DeleteAsync(It.IsAny <Salario>(), default), Times.Never); }
public void EditDespesaMensalDeveValidarIdSalario() { var command = new EditDespesaMensalCommandBuilder() .ComId(new Guid("10AFDB5E-D7D1-4773-B040-F7B6F610484F")) .ComDescricao("Teste") .ComValor(decimal.One) .ComData(DateTime.Now) .Instanciar(); command.IsValid(); command.ValidationResult.IsValid.Should().BeFalse(); command.ValidationResult.Errors.Count.Should().Be(1); command.ValidationResult.Errors[0].ErrorMessage.Should().Be("Id salário inválido"); }
public void EditDespesaMensalNaoDeveApresentarMensagensValidacao() { var command = new EditDespesaMensalCommandBuilder() .ComId(new Guid("10AFDB5E-D7D1-4773-B040-F7B6F610484F")) .ComIdSalario(new Guid("10AFDB5E-D7D1-4773-B040-F7B6F610484F")) .ComDescricao("Teste") .ComValor(decimal.One) .ComData(DateTime.Now) .Instanciar(); command.IsValid(); command.ValidationResult.IsValid.Should().BeTrue(); command.ValidationResult.Errors.Count.Should().BeLessThan(1); }
public void EditDespesaMensalDeveValidarValor(decimal valor) { var command = new EditDespesaMensalCommandBuilder() .ComId(new Guid("10AFDB5E-D7D1-4773-B040-F7B6F610484F")) .ComIdSalario(new Guid("10AFDB5E-D7D1-4773-B040-F7B6F610484F")) .ComDescricao("Teste") .ComValor(valor) .ComData(DateTime.Now) .Instanciar(); command.IsValid(); command.ValidationResult.IsValid.Should().BeFalse(); command.ValidationResult.Errors.Count.Should().Be(1); command.ValidationResult.Errors[0].ErrorMessage.Should().Be("O valor Pagamento deve ser maior que zero"); }
public async Task EditDespesaMensalCommand() { var despesaMensalBuilder = new DespesaMensal("Celular", 32.99M, new DateTime(2019, 10, 5)); var salarioBuilder = new Salario(1200.55M, 1500.89M).AdicionarDespesaMensal(despesaMensalBuilder); var commandBuilder = new EditDespesaMensalCommandBuilder() .ComId(despesaMensalBuilder.Id) .ComDescricao("Cartão") .ComIdSalario(new Guid("32cd6820-0da5-4c5f-94d1-e73b01f05de2")) .ComData(DateTime.Now) .ComValor(decimal.One) .Instanciar(); commandBuilder.IsValid(); _mocker.GetMock <ISalarioRepository>().Setup(x => x.GetByIdAsync(commandBuilder.IdSalario, default)).ReturnsAsync(salarioBuilder); _mocker.GetMock <IDespesaMensalRepository>().Setup(x => x.UpdateAsync(It.IsAny <DespesaMensal>(), default)) .Returns(Task.CompletedTask) .Callback <DespesaMensal, CancellationToken>((objeto, token) => { objeto.Id.Should().NotBeEmpty(); objeto.Descricao.Should().Be(commandBuilder.Descricao); objeto.Data.Should().Be(commandBuilder.Data); objeto.Valor.Should().Be(commandBuilder.Valor); objeto.Status.Should().BeTrue(); objeto.Salario.Id.Should().Be(salarioBuilder.Id); }); var resultado = await _commandHandler.Handle(commandBuilder, default); resultado.Should().BeTrue(); commandBuilder.ValidationResult.Errors.Should().HaveCount(0); commandBuilder.IsValid().Should().BeTrue(); _mocker.Verify <IMediator>(x => x.Publish(It.IsAny <DomainNotification>(), default), Times.Never); _mocker.Verify <IDespesaMensalRepository>(x => x.AddAsync(It.IsAny <DespesaMensal>(), default), Times.Never); _mocker.Verify <IDespesaMensalRepository>(x => x.DeleteAsync(It.IsAny <DespesaMensal>(), default), Times.Never); _mocker.Verify <ISalarioRepository>(x => x.AddAsync(It.IsAny <Salario>(), default), Times.Never); _mocker.Verify <ISalarioRepository>(x => x.UpdateAsync(It.IsAny <Salario>(), default), Times.Never); _mocker.Verify <ISalarioRepository>(x => x.DeleteAsync(It.IsAny <Salario>(), default), Times.Never); _mocker.Verify <IDespesaMensalRepository>(x => x.UpdateAsync(It.IsAny <DespesaMensal>(), default), Times.Once); _mocker.Verify <ISalarioRepository>(x => x.GetByIdAsync(It.IsAny <Guid>(), default), Times.Once); }