Exemplo n.º 1
0
        public async Task Handle_QuadraHandler_AdicionarQuadra()
        {
            var comando = new AdicionarQuadraCommand
            {
                Quadra = new QuadraModel
                {
                    Nome                  = _faker.Company.CompanyName(),
                    Imagem                = _faker.Image.PicsumUrl(),
                    PrecoHora             = _faker.Random.Decimal(90, 130),
                    Telefone              = _faker.Phone.PhoneNumber("(##) ####-####"),
                    Endereco              = _faker.Address.FullAddress(),
                    Cep                   = _faker.Address.ZipCode("#####-###"),
                    Latitude              = _faker.Address.Latitude(),
                    Longitude             = _faker.Address.Longitude(),
                    UsuarioProprietarioId = _memoryDb.Usuarios.Last().Id
                }
            };

            var cmdResult = await _mediator.Send(comando);

            cmdResult.Should().NotBeNull();

            var quadraInserida = _memoryDb.Quadras.Last();

            quadraInserida.Nome.Should().Be(comando.Quadra.Nome);
            quadraInserida.Imagem.Should().Be(comando.Quadra.Imagem);
            quadraInserida.PrecoHora.Should().Be(comando.Quadra.PrecoHora);
            quadraInserida.Telefone.Should().Be(comando.Quadra.Telefone);
            quadraInserida.Endereco.Should().Be(comando.Quadra.Endereco);
            quadraInserida.Cep.Should().Be(comando.Quadra.Cep);
            quadraInserida.Latitude.Should().Be(comando.Quadra.Latitude);
            quadraInserida.Longitude.Should().Be(comando.Quadra.Longitude);
            quadraInserida.UsuarioProprietarioId.Should().Be(comando.Quadra.UsuarioProprietarioId);
        }
Exemplo n.º 2
0
        public async Task EmpresaCommandHandler_Handle_AdicionarQuadraCommand_NaoDeveAdicionarNovaQuadraNaEmpresaPoisEmpresaNaoFoiEncontrada()
        {
            //Arrange
            AdicionarQuadraCommand adicionarQuadraCommand = _applicationFixtures.EmpresaCommandHandler.CriarAdicionarQuadraCommandValido();

            //Act
            await _empresaCommandHandler.Handle(adicionarQuadraCommand, ApplicationFixtures.CancellationToken);

            //Assert
            _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Notify(It.IsAny <DomainNotification>()), Times.Once);
        }
Exemplo n.º 3
0
        public async Task <QuadraModel> AdicionarQuadraAsync(CriarQuadraRequest request)
        {
            var adicionadrQuadraCommand = new AdicionarQuadraCommand
            {
                Quadra = _mapper
                         .Map <QuadraModel>(request)
            };

            var result = await _mediator
                         .Send(adicionadrQuadraCommand);

            return(result);
        }
Exemplo n.º 4
0
        public async Task EmpresaCommandHandler_Handle_AdicionarQuadraCommand_DeverAdicionarNovaQuadraNaEmpresa()
        {
            //Arrange
            AdicionarQuadraCommand adicionarQuadraCommand = _applicationFixtures.EmpresaCommandHandler.CriarAdicionarQuadraCommandValido();
            Empresa empresa = _domainFixtures.Empresa.CriarEmpresaValida();

            _applicationFixtures.Mocker.GetMock <IEmpresaRepository>().Setup(r => r.ObterEmpresaPorId(adicionarQuadraCommand.EmpresaId)).ReturnsAsync(empresa);
            _applicationFixtures.Mocker.GetMock <IEmpresaRepository>().Setup(r => r.Commit()).ReturnsAsync(true);

            //Act
            await _empresaCommandHandler.Handle(adicionarQuadraCommand, ApplicationFixtures.CancellationToken);

            //Assert
            empresa.Quadras.Should().HaveCount(1);
            _applicationFixtures.Mocker.Verify <IEmpresaRepository>(r => r.AdicionarQuadra(It.IsAny <Quadra>()), Times.Once);
            _applicationFixtures.Mocker.Verify <IMediatrHandler>(m => m.Publish(It.IsAny <Event>()), Times.Once);
        }
Exemplo n.º 5
0
        public async Task <ValidationResult> Handle(AdicionarQuadraCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                return(message.ValidationResult);
            }

            Empresa empresa = await _empresaRepository.ObterEmpresaPorId(message.EmpresaId);

            if (empresa is null)
            {
                return(await NotifyAndReturn("Empresa não encontrada."));
            }

            Quadra novaQuadra = new Quadra(message.TipoEsporteQuadra, message.TempoLocacao, message.ValorPorTempoLocado);

            empresa.AdicionarQuadra(novaQuadra);

            _empresaRepository.AdicionarQuadra(novaQuadra);

            return(await SaveAndPublish(new QuadraAdicionadaEmpresaEvent(novaQuadra.Id, message.UsuarioId, novaQuadra.EmpresaId, novaQuadra.Id,
                                                                         novaQuadra.TempoLocacao, novaQuadra.ValorPorTempoLocado, novaQuadra.TipoEsporteQuadra)));
        }