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);
        }
Example #2
0
        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");
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }