예제 #1
0
        public async Task Deve_Falhar_Quando_RegistrarNovoProtocolo_Retonar_Falha()
        {
            //Arrange
            var novoNumeroProtocolo = Guid.NewGuid().ToString();
            var usuarioSolicitante  = FakeData.SolicitarAtendimentoCommandValido;

            protocoloServico.GerarNumeroProtocolo()
            .Returns(_ => Result <string> .Ok(novoNumeroProtocolo));

            protocoloServico.RegistrarNovoProtocolo(Arg.Any <Protocolo>())
            .Returns(_ => Result.Fail(""));

            usuarioSolicitanteServico.ConsultarUsuarioSolicitantePorCPF(Arg.Any <string>()).Returns(_ => Result <UsuarioSolicitante> .Fail(""));

            mediator.Send(Arg.Any <RegistrarNovoUsuarioSolicitanteCommand>())
            .Returns(_ => Result <RegistrarNovoUsuarioSolicitanteResponse> .Ok(new RegistrarNovoUsuarioSolicitanteResponse
            {
                EmailSolicitante = usuarioSolicitante.EmailSolicitante
            }));

            //Act
            var sut      = new SolicitarAtendimentoHandler(mediator, protocoloServico, usuarioSolicitanteServico);
            var response = await sut.Handle(FakeData.SolicitarAtendimentoCommandValido, default(CancellationToken)).ConfigureAwait(false);

            //Assert
            protocoloServico.Received().RegistrarNovoProtocolo(Arg.Any <Protocolo>()).GetAwaiter();
            Assert.Multiple(() =>
            {
                Assert.IsNotNull(response);
                Assert.IsInstanceOf <Result <SolicitarAtendimentoResponse> >(response);
                Assert.IsNull(response.Value);
                Assert.IsTrue(response.IsFailure);
                Assert.AreEqual(1, response.Messages.Count);
            });
        }
예제 #2
0
        private async Task <Result <Protocolo> > RegistrarNovoProtocolo(UsuarioSolicitante usuarioResult, string gerarNumeroProtocoloResult)
        {
            try
            {
                var novoProtocoloResult = CriarNovoProtocolo(usuarioResult, gerarNumeroProtocoloResult);
                if (novoProtocoloResult.IsFailure)
                {
                    return(Result <Protocolo> .Fail(novoProtocoloResult.Messages));
                }

                var registrarNovoProtocoloResult = await _protocoloServico.RegistrarNovoProtocolo(novoProtocoloResult.Value).ConfigureAwait(false);

                if (registrarNovoProtocoloResult.IsFailure)
                {
                    return(Result <Protocolo> .Fail(registrarNovoProtocoloResult.Messages));
                }

                return(Result <Protocolo> .Ok(novoProtocoloResult.Value));
            }
            catch (Exception ex)
            {
                return(Result <Protocolo> .Fail(""));
            }
        }