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); }
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); }
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)); } }