Beispiel #1
0
        public async Task EmpresaCommandHandler_Handle_AprovarSolicitacaoLocacaoCommand_NaoDeveDispararEventoDeSolicitacaoAprovada()
        {
            //Arrange
            AprovarSolicitacaoLocacaoCommand aprovarSolicitacaoLocacaoCommand = _applicationFixtures.EmpresaCommandHandler.CriarAprovarSolicitacaoLocacaoCommandValido();

            //Act
            await _empresaCommandHandler.Handle(aprovarSolicitacaoLocacaoCommand, ApplicationFixtures.CancellationToken);

            //Assert
            _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Notify(It.IsAny <DomainNotification>()), Times.AtLeastOnce());
        }
Beispiel #2
0
        public async Task EmpresaCommandHandler_Handle_AprovarSolicitacaoLocacaoCommand_DeveDispararEventoDeSolicitacaoAprovada()
        {
            //Arrange

            Quadra  quadra  = _domainFixtures.Quadra.CriarQuadraValida();
            Empresa empresa = _domainFixtures.Empresa.CriarEmpresaValida();

            empresa.AdicionarQuadra(quadra);

            AprovarSolicitacaoLocacaoCommand aprovarSolicitacaoLocacaoCommand = _applicationFixtures.EmpresaCommandHandler.CriarAprovarSolicitacaoLocacaoCommandValidoComQuadra(quadra.Id);

            _applicationFixtures.Mocker.GetMock <IEmpresaRepository>().Setup(r => r.ObterEmpresaComQuadrasPorId(aprovarSolicitacaoLocacaoCommand.EmpresaId)).ReturnsAsync(empresa);

            //Act
            await _empresaCommandHandler.Handle(aprovarSolicitacaoLocacaoCommand, ApplicationFixtures.CancellationToken);

            //Assert
            _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Publish(It.IsAny <Event>()), Times.Once);
        }
Beispiel #3
0
        public async Task <ValidationResult> Handle(AprovarSolicitacaoLocacaoCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                return(message.ValidationResult);
            }

            Empresa empresa = await _empresaRepository.ObterEmpresaComQuadrasPorId(message.EmpresaId);

            if (empresa is null)
            {
                return(await NotifyAndReturn("Empresa não encontrada."));
            }

            Quadra quadraQueSeraLocada = empresa.Quadras.SingleOrDefault(q => q.Id.Equals(message.QuadraId));

            if (quadraQueSeraLocada is null)
            {
                return(await NotifyAndReturn($"Quadra não encontrada na empresa '{empresa.RazaoSocial}'."));
            }

            return(await PublishEvents(new SolicitacaoLocacaoAprovadaEvent(message.SolicitacaoId, empresa.Id, message.QuadraId,
                                                                           new InformacoesTempoQuadra(quadraQueSeraLocada.ValorPorTempoLocado, quadraQueSeraLocada.TempoLocacao))));
        }