public async void ValidarFalhaTamanhoMaximo()
        {
            // Arrange
            var command = new AtualizarProcessoCommand
            {
                Id                 = 1,
                NumeroProcesso     = this.Faker.Random.String(30),
                DataDistribuicao   = DateTimeOffset.Now.AddDays(-1),
                SegredoJustica     = true,
                PastaFisicaCliente = this.Faker.Random.String(55),
                Descricao          = this.Faker.Random.String(1005),
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1
                },
                ProcessoVinculadoId = 1
            };

            // Act
            var result = await this.sut.ValidateModelAsync(command);

            // Assert
            result.Should().BeFalse();
            this.MockNotificationContext.Verify(n => n.Add(It.IsNotNull <string>(), It.IsNotNull <string>()), Times.Exactly(3));
            this.Notifications.Should().HaveCount(3);
            this.Notifications.FirstOrDefault(n => n.Message == $"Número Processo: {string.Format(ErrorMessages.ErroTamanhoMaximo, 20)}").Should().NotBeNull();
            this.Notifications.FirstOrDefault(n => n.Message == $"Pasta Física Cliente: {string.Format(ErrorMessages.ErroTamanhoMaximo, 50)}").Should().NotBeNull();
            this.Notifications.FirstOrDefault(n => n.Message == $"Descrição: {string.Format(ErrorMessages.ErroTamanhoMaximo, 1000)}").Should().NotBeNull();
        }
        public ProcessoServiceTests()
        {
            this.mockMediator = new Mock <IMediator>();

            this.criarProcessoCommand = new CriarProcessoCommand
            {
                NumeroProcesso     = "123",
                DataDistribuicao   = DateTimeOffset.Now,
                SegredoJustica     = true,
                PastaFisicaCliente = "pastaCliente",
                Descricao          = "descricao",
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1, 2
                },
                ProcessoVinculadoId = 1
            };

            this.atualizarProcessoCommand = new AtualizarProcessoCommand
            {
                Id                 = 1,
                NumeroProcesso     = "123",
                DataDistribuicao   = DateTimeOffset.Now,
                SegredoJustica     = true,
                PastaFisicaCliente = "pastaCliente",
                Descricao          = "descricao",
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1, 2
                },
                ProcessoVinculadoId = 1
            };

            this.sut = new ProcessoService(this.mockMediator.Object);
        }
        public async void ValidarFalhaSituacaoProcessoNaoEncontrada()
        {
            // Arrange
            var command = new AtualizarProcessoCommand
            {
                Id                 = 1,
                NumeroProcesso     = "83765873465",
                DataDistribuicao   = DateTimeOffset.Now.AddDays(-1),
                SegredoJustica     = true,
                PastaFisicaCliente = "Pasta Fisica Cliente",
                Descricao          = "Descricao",
                SituacaoProcessoId = 4,
                ResponsaveisIds    = new List <int> {
                    1
                },
                ProcessoVinculadoId = 1
            };

            this.MockProcessoRepository
            .Setup(p => p.ObterPorId(1))
            .Returns(this.Processo1);

            this.MockSituacaoProcessoRepository
            .Setup(s => s.ObterPorId(It.IsNotNull <int>()))
            .Returns((SituacaoProcesso)null);

            // Act
            var result = await this.sut.ValidateModelAsync(command);

            // Assert
            result.Should().BeFalse();
            this.Notifications.Should().HaveCount(1);
            this.Notifications.FirstOrDefault(n => n.Message == string.Format(ErrorMessages.SituacaoNaoEncontrada, command.SituacaoProcessoId)).Should().NotBeNull();
        }
        public async void ValidarFalhaProcessoNaoEncontrado()
        {
            // Arrange
            var command = new AtualizarProcessoCommand
            {
                Id                 = 9,
                NumeroProcesso     = "12523452345",
                DataDistribuicao   = DateTimeOffset.Now.AddDays(-1),
                SegredoJustica     = true,
                PastaFisicaCliente = "Pasta Fisica Cliente",
                Descricao          = "Descricao",
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1, 2, 3
                },
                ProcessoVinculadoId = 1
            };

            // Act
            var result = await this.sut.ValidateModelAsync(command);

            // Assert
            result.Should().BeFalse();
            this.Notifications.Should().HaveCount(1);
            this.Notifications.FirstOrDefault(n => n.Message == string.Format(ErrorMessages.ProcessoNaoEcontrado, command.NumeroProcesso)).Should().NotBeNull();
        }
        public async void ValidarFalhaResponsaveisDuplicados()
        {
            // Arrange
            var command = new AtualizarProcessoCommand
            {
                Id                 = 1,
                NumeroProcesso     = "83765873465",
                DataDistribuicao   = DateTimeOffset.Now.AddDays(-1),
                SegredoJustica     = true,
                PastaFisicaCliente = "Pasta Fisica Cliente",
                Descricao          = "Descricao",
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1, 1, 3
                },
                ProcessoVinculadoId = 1
            };

            // Act
            var result = await this.sut.ValidateModelAsync(command);

            // Assert
            result.Should().BeFalse();
            this.Notifications.Should().HaveCount(1);
            this.Notifications.FirstOrDefault(n => n.Message == $"Responsável: {ErrorMessages.ResponsavelRepetido}").Should().NotBeNull();
        }
        public async void ValidarFalhaCamposVazios()
        {
            // Arrange
            var command = new AtualizarProcessoCommand
            {
                Id                  = 1,
                NumeroProcesso      = null,
                DataDistribuicao    = DateTimeOffset.Now.AddDays(-1),
                SegredoJustica      = true,
                PastaFisicaCliente  = this.Faker.Random.String(40),
                Descricao           = this.Faker.Random.String(100),
                SituacaoProcessoId  = null,
                ResponsaveisIds     = null,
                ProcessoVinculadoId = 1
            };

            // Act
            var result = await this.sut.ValidateModelAsync(command);

            // Assert
            result.Should().BeFalse();
            this.Notifications.Should().HaveCount(3);
            this.Notifications.FirstOrDefault(n => n.Message == $"Número Processo: {ErrorMessages.ErroVazio}").Should().NotBeNull();
            this.Notifications.FirstOrDefault(n => n.Message == $"Responsável: {ErrorMessages.ErroVazio}").Should().NotBeNull();
            this.Notifications.FirstOrDefault(n => n.Message == $"Situação Processo: {ErrorMessages.ErroVazio}").Should().NotBeNull();
        }
        public async Task AtualizarProcessoAsync(AtualizarProcessoCommand command)
        {
            var response = await this.mediator.Send(command, default);

            if (response.Success && response.Value != null)
            {
                await this.mediator.Send(new ProcessoAtualizadoEvent(response.Value.ProcessoId, response.Value.ResponsaveisAdicionadosIds));
            }
        }
        public async void ValidarFalhaProcessoJaConstaHierarquia()
        {
            // Arrange
            var command = new AtualizarProcessoCommand
            {
                Id                 = 1,
                NumeroProcesso     = "83765873465",
                DataDistribuicao   = DateTimeOffset.Now.AddDays(-1),
                SegredoJustica     = true,
                PastaFisicaCliente = "Pasta Fisica Cliente",
                Descricao          = "Descricao",
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1
                },
                ProcessoVinculadoId = 1
            };

            this.MockProcessoRepository
            .Setup(p => p.ObterPorId(1))
            .Returns(this.Processo1);

            this.MockSituacaoProcessoRepository
            .Setup(s => s.ObterPorId(1))
            .Returns(this.SituacaoEmAndamento);

            this.MockResponsavelRepository
            .Setup(r => r.Obter(It.IsNotNull <Expression <Func <Responsavel, bool> > >()))
            .Returns(new List <Responsavel>());

            this.MockResponsavelRepository
            .Setup(r => r.ObterPorId(It.IsNotNull <int>()))
            .Returns(new Responsavel());

            this.MockProcessoDomainService
            .Setup(pd => pd.ValidarHierarquiaQuantidade(It.IsNotNull <Processo>()))
            .Returns(true);

            this.MockProcessoDomainService
            .Setup(pd => pd.ValidarNaoExistenteNaHierarquia(It.IsNotNull <Processo>()))
            .Returns(false);

            // Act
            var result = await this.sut.ValidateModelAsync(command);

            // Assert
            result.Should().BeFalse();
            this.Notifications.Should().HaveCount(1);
            this.Notifications.FirstOrDefault(n => n.Message == ErrorMessages.ProcessoJaConstaNaHierarquia).Should().NotBeNull();
        }
Exemple #9
0
        public ProcessoControllerTests()
        {
            this.mockProcessoService  = new Mock <IProcessoService>();
            this.mockApiResultHandler = new Mock <IApiResultHandler>();
            this.mockLogger           = new Mock <ILogger <ProcessoController> >();

            sut = new ProcessoController(
                this.mockApiResultHandler.Object,
                this.mockProcessoService.Object,
                this.mockLogger.Object);

            sut.ControllerContext = new ControllerContext()
            {
                HttpContext = MockHelpers.CreateHttpContextMock()
            };

            criarProcessoCommand = new CriarProcessoCommand
            {
                NumeroProcesso     = "123",
                DataDistribuicao   = DateTimeOffset.Now,
                SegredoJustica     = true,
                PastaFisicaCliente = "pastaCliente",
                Descricao          = "descricao",
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1, 2
                },
                ProcessoVinculadoId = 1
            };

            atualizarProcessoCommand = new AtualizarProcessoCommand
            {
                Id                 = ProcessoId,
                NumeroProcesso     = "123",
                DataDistribuicao   = DateTimeOffset.Now,
                SegredoJustica     = true,
                PastaFisicaCliente = "pastaCliente",
                Descricao          = "descricao",
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1, 2
                },
                ProcessoVinculadoId = 1
            };
        }
        public AtualizarProcessoCommandHandlerTests()
        {
            this.mockProcessoRepository    = new Mock <IProcessoRepository>();
            this.mockResponsavelRepository = new Mock <IResponsavelRepository>();
            this.mockValidator             = new Mock <IAtualizarProcessoCommandValidator>();
            this.mockNotificationContext   = new Mock <INotificationContext>();
            this.mockUnitOfWork            = new Mock <IUnitOfWork>();
            this.mockLogger = new Mock <ILogger <AtualizarProcessoCommandHandler> >();

            this.command = new AtualizarProcessoCommand
            {
                NumeroProcesso     = "123",
                DataDistribuicao   = DateTimeOffset.Now,
                SegredoJustica     = true,
                PastaFisicaCliente = "pastaCliente",
                Descricao          = "descricao",
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1, 2
                },
                ProcessoVinculadoId = 1
            };

            this.responsaveis = new List <Responsavel>
            {
                new Responsavel
                {
                    Id    = 1,
                    Cpf   = "Cpf",
                    Email = "Email",
                    Foto  = new byte[1],
                    Nome  = "Nome"
                },
                new Responsavel
                {
                    Id    = 2,
                    Cpf   = "Cpf2",
                    Email = "Email2",
                    Foto  = new byte[1],
                    Nome  = "Nome2"
                }
            };

            this.processoPai = new Processo
            {
                Id = ProcessoPaiId.Value,
                DataDistribuicao   = DateTimeOffset.Now,
                Descricao          = "PaiDescricao",
                NumeroProcesso     = "PaiNumProcesso",
                PastaFisicaCliente = "PaiPastaFisicaCliente",
                SegredoJustica     = true,
            };

            this.processo = new Processo
            {
                Id = ProcessoId.Value,
                DataDistribuicao    = DateTimeOffset.Now,
                Descricao           = "Descricao",
                NumeroProcesso      = "NumProcesso",
                PastaFisicaCliente  = "PastaFisicaCliente",
                ProcessoVinculado   = processoPai,
                ProcessoVinculadoId = processoPai.Id,
                SegredoJustica      = true,
                SituacaoId          = situacaoProcessoId
            };

            this.processo.AtribuirResponsaveis(responsaveis);

            this.sut = new AtualizarProcessoCommandHandler(
                this.mockProcessoRepository.Object,
                this.mockResponsavelRepository.Object,
                this.mockValidator.Object,
                this.mockNotificationContext.Object,
                this.mockUnitOfWork.Object,
                this.mockLogger.Object);
        }
Exemple #11
0
 public Task <IActionResult> AtualizarProcessoAsync(int?id, [FromBody] AtualizarProcessoCommand command)
 {
     command.Id = id;
     return(this.ExecAndHandleAsync(action: () => this.processoService.AtualizarProcessoAsync(command)));
 }