Exemplo n.º 1
0
        public async Task UsuarioCommandHandler_AdicionarEmpresaCommand_Handle_NaoDeveAdicionarGrupoSemEncontrarUsuario()
        {
            //Arrange
            AdicionarGrupoCommand adicionarGrupoCommand = _applicationFixtures.UsuarioCommandHandler.CriarAdicionarGrupoCommandValido();

            //Act
            await _usuarioCommandHandler.Handle(adicionarGrupoCommand, ApplicationFixtures.CancellationToken);

            //Assert
            _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Verify(r => r.AdicionarGrupo(It.IsAny <Grupo>()), Times.Never);
            _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Notify(It.IsAny <DomainNotification>()), Times.AtLeastOnce);
        }
Exemplo n.º 2
0
        public async Task UsuarioCommandHandler_AdicionarGrupoCommand_Handle_DeveAdicionarGrupo()
        {
            //Arrange
            AdicionarGrupoCommand adicionarGrupoCommand = _applicationFixtures.UsuarioCommandHandler.CriarAdicionarGrupoCommandValido();
            Usuario usuario = _domainFixtures.Usuario.CriarUsuarioValido();

            _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Setup(r => r.ObterUsuarioPorId(adicionarGrupoCommand.UsuarioCriadorId)).ReturnsAsync(usuario);
            _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Setup(r => r.Commit()).ReturnsAsync(true);

            //Act
            await _usuarioCommandHandler.Handle(adicionarGrupoCommand, ApplicationFixtures.CancellationToken);

            //Assert
            usuario.Grupos.Should().HaveCount(1);
            _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Verify(r => r.AdicionarGrupo(It.IsAny <Grupo>()), Times.Once);
            _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Verify(r => r.AtualizarUsuario(usuario), Times.Once);
            _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Publish(It.IsAny <Event>()), Times.Once);
        }
Exemplo n.º 3
0
        public async Task UsuarioCommandHandler_AdicionarEmpresaCommand_Handle_NaoDeveInativarEmpresaSemEncontrarUsuarioOuEmpresa()
        {
            //Arrange
            AdicionarGrupoCommand adicionarGrupoCommand = _applicationFixtures.UsuarioCommandHandler.CriarAdicionarGrupoCommandValido();
            Empresa empresa = _domainFixtures.Empresa.CriarEmpresaValida();
            Usuario usuario = _domainFixtures.Usuario.CriarUsuarioValido();

            usuario.AdicionarEmpresa(empresa);

            //Act
            await _usuarioCommandHandler.Handle(adicionarGrupoCommand, ApplicationFixtures.CancellationToken);

            //Assert
            empresa.Ativo.Should().BeTrue();
            _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Verify(r => r.AtualizarEmpresa(empresa), Times.Never);
            _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Verify(r => r.AtualizarUsuario(usuario), Times.Never);
            _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Notify(It.IsAny <DomainNotification>()), Times.AtLeastOnce);
        }
Exemplo n.º 4
0
        public async Task <ValidationResult> Handle(AdicionarGrupoCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                return(message.ValidationResult);
            }

            Usuario proprietarioGrupo = await _repository.ObterUsuarioPorId(message.UsuarioCriadorId);

            if (proprietarioGrupo is null)
            {
                return(await NotifyAndReturn("Usuário não encontrado."));
            }

            Grupo novoGrupo = new Grupo(message.NomeGrupo, message.NumeroMaximoMembros);

            proprietarioGrupo.AdicionarGrupo(novoGrupo);

            _repository.AdicionarGrupo(novoGrupo);

            _repository.AtualizarUsuario(proprietarioGrupo);

            return(await SaveAndPublish(new GrupoAdicionadoUsuarioEvent(novoGrupo.UsuarioCriadorId, novoGrupo.Id, novoGrupo.NomeGrupo, novoGrupo.NumeroMaximoMembros)));
        }