public void Deve_validar_solicitacao_de_manutencao_quando_ja_reprovada()
        {
            const string mensagemEsperada = "Solicitação já analisada e está reprovada";

            _solicitacaoDeManutencao = FluentBuilder <SolicitacaoDeManutencao> .New().With(solicitacao => solicitacao.StatusDaSolicitacao, StatusDaSolicitacao.Reprovada).Build();

            _solicitacaoDeManutencaoRepositorio.ObterPorId(_dto.IdDaSolicitacao).Returns(_solicitacaoDeManutencao);

            AssertExtensions.ThrowsWithMessageAsync(() => _analiseDeAprovacaoDaSolicitacao.Analisar(_dto), mensagemEsperada);
        }
        public AnaliseDeAprovacaoDaSolicitacaoDeManutencaoTeste()
        {
            _dto = new AnaliseDeAprovacaoDto {
                IdDaSolicitacao = "XPTO", AprovadorId = 1, NomeDoAprovador = "Mario"
            };
            _solicitacaoDeManutencao = FluentBuilder <SolicitacaoDeManutencao> .New().Build();

            _solicitacaoDeManutencaoRepositorio = Substitute.For <ISolicitacaoDeManutencaoRepositorio>();
            _notificaReprovacaoParaSolicitante  = Substitute.For <INotificaReprovacaoParaSolicitante>();
            _notificaContextoDeServico          = Substitute.For <INotificaContextoDeServico>();
            _solicitacaoDeManutencaoRepositorio.ObterPorId(_dto.IdDaSolicitacao).Returns(_solicitacaoDeManutencao);
            _analiseDeAprovacaoDaSolicitacao =
                new AnaliseDeAprovacaoDaSolicitacaoDeManutencao(
                    _solicitacaoDeManutencaoRepositorio, _notificaReprovacaoParaSolicitante, _notificaContextoDeServico);
        }
Example #3
0
        public void Analisar(AnaliseDeAprovacaoDto analiseDeAprovacaoDto)
        {
            var solicitacaoDeManutencao =
                _solicitacaoDeManutencaoRepositorio.ObterPorId(analiseDeAprovacaoDto.IdDaSolicitacao);

            ExcecaoDeDominio.LancarQuando(solicitacaoDeManutencao == null, "Solicitação não encontrada");

            var aprovador = new Autor(analiseDeAprovacaoDto.IdentificadorDoAprovador, analiseDeAprovacaoDto.NomeDoAprovador);

            if (analiseDeAprovacaoDto.Aprovado)
            {
                Aprovar(solicitacaoDeManutencao, aprovador);
            }
            else
            {
                Reprovar(solicitacaoDeManutencao, aprovador);
            }
        }
        public async Task Analisar(AnaliseDeAprovacaoDto analiseDeAprovacaoDto)
        {
            var solicitacaoDeManutencao =
                _solicitacaoDeManutencaoRepositorio.ObterPorId(analiseDeAprovacaoDto.IdDaSolicitacao);

            ExcecaoDeDominio.LancarQuando(solicitacaoDeManutencao == null, "Solicitação não encontrada");
            ExcecaoDeDominio.LancarQuando(solicitacaoDeManutencao.Reprovada(), "Solicitação já analisada e está reprovada");
            ExcecaoDeDominio.LancarQuando(solicitacaoDeManutencao.Aprovada(), "Solicitação já analisada e está aprovada");

            var aprovador = new Autor(analiseDeAprovacaoDto.AprovadorId, analiseDeAprovacaoDto.NomeDoAprovador);

            if (analiseDeAprovacaoDto.Aprovado)
            {
                await Aprovar(solicitacaoDeManutencao, aprovador);
            }
            else
            {
                Reprovar(solicitacaoDeManutencao, aprovador);
            }
        }