Example #1
0
        public async Task EmpresaCommandHandler_Handle_InativarQuadraCommand_NaoDeveInativarQuadraDaEmpresa()
        {
            //Arrange
            InativarQuadraCommand inativarEmpresaCommand = _applicationFixtures.EmpresaCommandHandler.CriarInativarQuadraCommandValido();

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

            //Assert
            _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Notify(It.IsAny <DomainNotification>()), Times.AtLeastOnce);
        }
Example #2
0
        public async Task EmpresaCommandHandler_Handle_InativarQuadraCommand_DeveInativarQuadraDaEmpresa()
        {
            //Arrange
            InativarQuadraCommand inativarEmpresaCommand = _applicationFixtures.EmpresaCommandHandler.CriarInativarQuadraCommandValido();
            Quadra  quadra  = _domainFixtures.Quadra.CriarQuadraValida();
            Empresa empresa = _domainFixtures.Empresa.CriarEmpresaValida();

            empresa.AdicionarQuadra(quadra);
            _applicationFixtures.Mocker.GetMock <IEmpresaRepository>().Setup(r => r.ObterEmpresaPorId(inativarEmpresaCommand.EmpresaId)).ReturnsAsync(empresa);
            _applicationFixtures.Mocker.GetMock <IEmpresaRepository>().Setup(r => r.ObterQuadraPorId(inativarEmpresaCommand.QuadraId)).ReturnsAsync(quadra);
            _applicationFixtures.Mocker.GetMock <IEmpresaRepository>().Setup(r => r.Commit()).ReturnsAsync(true);

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

            //Assert
            quadra.Ativo.Should().BeFalse();
            _applicationFixtures.Mocker.Verify <IEmpresaRepository>(r => r.AtualizarQuadra(quadra), Times.Once);
            _applicationFixtures.Mocker.Verify <IEmpresaRepository>(r => r.AtualizarEmpresa(empresa), Times.Once);
            _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Publish(It.IsAny <Event>()), Times.Once);
        }
Example #3
0
        public async Task <ValidationResult> Handle(InativarQuadraCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                return(message.ValidationResult);
            }

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

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

            Quadra quadraParaInativar = await _empresaRepository.ObterQuadraPorId(message.QuadraId);

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

            try
            {
                empresa.InativarQuadra(quadraParaInativar);

                _empresaRepository.AtualizarQuadra(quadraParaInativar);

                _empresaRepository.AtualizarEmpresa(empresa);

                return(await SaveAndPublish(new QuadraInativadaEmpresaEvent(quadraParaInativar.Id, empresa.Id)));
            }
            catch (DomainException exception)
            {
                return(await NotifyAndReturn(exception.Message));
            }
        }