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