public async Task GrupoCommandHandler_Handle_AdicionarMembroCommand_NaoDeveAdicionarNovoMembroAoGrupo() { //Arrange AdicionarMembroCommand adicionarMembroCommand = _applicationFixtures.GrupoCommandHandler.CriarAdicionarMembroCommandValido(); //Act await _grupoCommandHandler.Handle(adicionarMembroCommand, ApplicationFixtures.CancellationToken); //Arrange _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Notify(It.IsAny <DomainNotification>()), Times.AtLeastOnce); }
public async Task GrupoCommandHandler_Handle_AdicionarMembroCommand_DeveAdicionarNovoMembroAoGrupo() { //Arrange AdicionarMembroCommand adicionarMembroCommand = _applicationFixtures.GrupoCommandHandler.CriarAdicionarMembroCommandValido(); Grupo grupo = _domainFixtures.Grupo.CriarGrupoValido(); _applicationFixtures.Mocker.GetMock <IGrupoRepository>().Setup(r => r.ObterGrupoPorId(adicionarMembroCommand.GrupoId)).ReturnsAsync(grupo); _applicationFixtures.Mocker.GetMock <IGrupoRepository>().Setup(r => r.Commit()).ReturnsAsync(true); //Act await _grupoCommandHandler.Handle(adicionarMembroCommand, ApplicationFixtures.CancellationToken); //Arrange grupo.Membros.Should().HaveCount(1); _applicationFixtures.Mocker.Verify <IGrupoRepository>(r => r.AdicionarMembro(grupo.Membros.SingleOrDefault()), Times.Once); _applicationFixtures.Mocker.Verify <IGrupoRepository>(r => r.AtualizarGrupo(grupo), Times.Once); _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Publish(It.IsAny <Event>()), Times.Once); }
public async Task <ValidationResult> Handle(AdicionarMembroCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { return(message.ValidationResult); } Grupo grupo = await _repository.ObterGrupoPorId(message.GrupoId); if (grupo is null) { return(await NotifyAndReturn("Grupo não encontrado.")); } Membro novoMembro = new Membro(message.UsuarioMembroId); grupo.AdicionarMembro(novoMembro); _repository.AdicionarMembro(novoMembro); _repository.AtualizarGrupo(grupo); return(await SaveAndPublish(new MembroAdicionadoGrupoEvent(novoMembro.Id, novoMembro.UsuarioId, novoMembro.GrupoId))); }