public async Task ObterPorId_DeveRetornarNullQuandoNaoForEncontradoNoBanco()
        {
            var query        = new ObterAmbientePorIdQuery(Guid.NewGuid());
            var queryHandler = new AmbienteQueryHandler(_ambienteRepository);

            var ambienteBanco = await queryHandler.Handle(query, CancellationToken.None);

            ambienteBanco.Should().BeNull();
        }
        public async Task ObterPorId_DeveInvalidarQueryQuandoIdForVazio()
        {
            var query        = new ObterAmbientePorIdQuery(Guid.Empty);
            var queryHandler = new AmbienteQueryHandler(_ambienteRepository);

            await queryHandler.Handle(query, CancellationToken.None);

            (await query.EhValido()).Should().Be(false);
            query.ValidationResult.Errors
            .Should()
            .Contain(error => error.ErrorMessage == "Id deve possuir conteúdo");
        }
        public async Task ObterPorId_DeveRetornarAmbienteQuandoForEncontradoNoBanco()
        {
            var ambiente = AmbienteFactory.GerarAmbiente();
            await _context.Ambientes.AddAsync(ambiente);

            await _context.SaveChangesAsync();

            var query        = new ObterAmbientePorIdQuery(ambiente.Id);
            var queryHandler = new AmbienteQueryHandler(_ambienteRepository);

            var ambienteBanco = await queryHandler.Handle(query, CancellationToken.None);

            ambienteBanco.Should().BeEquivalentTo(ambiente);
        }
        public async Task HandlerObterTodos_DeveRetornarTodosOsAmbientesSalvosNoBanco()
        {
            var ambiente1 = AmbienteFactory.GerarAmbiente();
            var ambiente2 = AmbienteFactory.GerarAmbiente();
            await _context.Ambientes.AddRangeAsync(ambiente1, ambiente2);

            await _context.SaveChangesAsync();

            var query        = new ObterTodosOsAmbientesQuery(1, 20);
            var queryHandler = new AmbienteQueryHandler(_ambienteRepository);

            var ambientes = await queryHandler.Handle(query, CancellationToken.None);

            ambientes.Should().HaveCount(2);
        }