public async Task UsuarioCommandHandler_AdicionarEmpresaCommand_Handle_NaoDeveAdicionarEmpresaSemEncontrarUsuario() { //Arrange AdicionarEmpresaCommand adicionarEmpresaCommand = _applicationFixtures.UsuarioCommandHandler.CriarAdicionarEmpresaCommandValido(); //Act await _usuarioCommandHandler.Handle(adicionarEmpresaCommand, ApplicationFixtures.CancellationToken); //Assert _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Verify(r => r.AdicionarEmpresa(It.IsAny <Empresa>()), Times.Never); _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Notify(It.IsAny <DomainNotification>()), Times.AtLeastOnce); }
public async Task UsuarioCommandHandler_AdicionarEmpresaCommand_Handle_DeveAdicionarEmpresa() { //Arrange AdicionarEmpresaCommand adicionarEmpresaCommand = _applicationFixtures.UsuarioCommandHandler.CriarAdicionarEmpresaCommandValido(); Usuario usuario = _domainFixtures.Usuario.CriarUsuarioValido(); _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Setup(r => r.ObterUsuarioPorId(adicionarEmpresaCommand.UsuarioProprietarioId)).ReturnsAsync(usuario); _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Setup(r => r.Commit()).ReturnsAsync(true); //Act await _usuarioCommandHandler.Handle(adicionarEmpresaCommand, ApplicationFixtures.CancellationToken); //Assert usuario.Empresas.Should().HaveCount(1); _applicationFixtures.Mocker.GetMock <IUsuarioRepository>().Verify(r => r.AdicionarEmpresa(It.IsAny <Empresa>()), Times.Once); _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Publish(It.IsAny <Event>()), Times.Once); }
public async Task <ValidationResult> Handle(AdicionarEmpresaCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { return(message.ValidationResult); } Usuario proprietarioEmpresa = await _repository.ObterUsuarioPorId(message.UsuarioProprietarioId); if (proprietarioEmpresa is null) { return(await NotifyAndReturn("Usuário não encontrado.")); } Empresa novaEmpresa = new Empresa(message.RazaoSocial, message.Cnpj, message.HorarioAbertura, message.HorarioFechamento); proprietarioEmpresa.AdicionarEmpresa(novaEmpresa); _repository.AdicionarEmpresa(novaEmpresa); return(await SaveAndPublish(new EmpresaAdicionadaUsuarioEvent(novaEmpresa.Id, message.UsuarioProprietarioId, message.RazaoSocial, message.Cnpj, message.DiasFuncionamento, message.HorarioAbertura, message.HorarioFechamento))); }
// [AllowAnonymous] public IActionResult Post([FromBody] AdicionarEmpresaCommand command) { var result = _handler.Handle(command); return(Response(result, _handler.Notifications)); }