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);
        }
Ejemplo n.º 2
0
        public CriarProcessoCommandHandlerTests()
        {
            this.mockProcessoRepository    = new Mock <IProcessoRepository>();
            this.mockResponsavelRepository = new Mock <IResponsavelRepository>();
            this.mockValidator             = new Mock <ICriarProcessoCommandValidator>();
            this.mockNotificationContext   = new Mock <INotificationContext>();
            this.mockUnitOfWork            = new Mock <IUnitOfWork>();
            this.mockLogger = new Mock <ILogger <CriarProcessoCommandHandler> >();

            this.command = new CriarProcessoCommand
            {
                NumeroProcesso     = "NumProcesso",
                DataDistribuicao   = DateTimeOffset.Now,
                SegredoJustica     = true,
                PastaFisicaCliente = "PastaFisicaCliente",
                Descricao          = "Descricao",
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1, 2, 3
                },
                ProcessoVinculadoId = 1
            };

            this.sut = new CriarProcessoCommandHandler(
                this.mockProcessoRepository.Object,
                this.mockResponsavelRepository.Object,
                this.mockValidator.Object,
                this.mockNotificationContext.Object,
                this.mockUnitOfWork.Object,
                this.mockLogger.Object);
        }
        public async void ValidarFalhaTamanhoMaximo()
        {
            // Arrange
            var command = new CriarProcessoCommand
            {
                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 async void ValidarFalhaSituacaoProcesso()
        {
            // Arrange
            var command = new CriarProcessoCommand
            {
                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.Obter(p => p.NumeroProcesso == command.NumeroProcesso))
            .Returns((IEnumerable <Processo>)null);

            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 ValidarFalhaProcessoJaExiste()
        {
            // Arrange
            var command = new CriarProcessoCommand
            {
                NumeroProcesso     = "1155668879",
                DataDistribuicao   = DateTimeOffset.Now.AddDays(-1),
                SegredoJustica     = true,
                PastaFisicaCliente = "Pasta Fisica Cliente",
                Descricao          = "Descricao",
                SituacaoProcessoId = 1,
                ResponsaveisIds    = new List <int> {
                    1, 2, 3
                },
                ProcessoVinculadoId = 1
            };

            this.MockProcessoRepository
            .Setup(pr => pr.Obter(It.IsNotNull <Expression <Func <Processo, bool> > >()))
            .Returns(new List <Processo> {
                this.Processo1
            });

            // 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.ProcessoJaExiste, command.NumeroProcesso)).Should().NotBeNull();
        }
        public async void ValidarFalhaResponsaveisDuplicados()
        {
            // Arrange
            var command = new CriarProcessoCommand
            {
                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 CriarProcessoCommand
            {
                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 <int?> CriarProcessoAsync(CriarProcessoCommand command)
        {
            var response = await this.mediator.Send(command, default);

            if (response.Success && response.Value.HasValue)
            {
                await this.mediator.Send(new ProcessoCriadoEvent(response.Value.Value));
            }

            return(response.Value);
        }
        public async void ValidarFalhaProcessoJaConstaHierarquia()
        {
            // Arrange
            var command = new CriarProcessoCommand
            {
                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(this.Aline);

            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();
        }
Ejemplo n.º 10
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
            };
        }
Ejemplo n.º 11
0
 public Task <IActionResult> CriarProcessoAsync([FromBody] CriarProcessoCommand command)
 {
     return(this.ExecAndHandleAsync(
                action: () => this.processoService.CriarProcessoAsync(command),
                onSuccessActionResultHandler: (result) => this.CreatedAtRoute(ObterProcessoRouteName, new { id = result.Value }, result)));
 }