Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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)));
        }
Ejemplo n.º 4
0
        // [AllowAnonymous]
        public IActionResult Post([FromBody] AdicionarEmpresaCommand command)
        {
            var result = _handler.Handle(command);

            return(Response(result, _handler.Notifications));
        }