Está dando esse erro no metodo de test da minha classe : System.NullReferenceException : Object reference not set to an instance of an object.
aqui está a stack trace :
<>c.<RetornaOfertaEspecificaQuandoDestinoSaoPauloEDesconto40>b__3_0(OfertaViagem o) linha 42
<>c__DisplayClass1_0`1.<CombinePredicates>b__0(TSource x)
WhereEnumerableIterator`1.MoveNext()
OrderedEnumerable`1.TryGetFirst(Boolean& found)
Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Boolean& found)
Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
OfertaViagemDAL.RecuperaMaiorDesconto(Func`2 filtro) linha 52
OfertaViagemDalRecuperaMaiorDesconto.RetornaOfertaEspecificaQuandoDestinoSaoPauloEDesconto40() linha 46
RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
Assim está a minha classe
using Bogus;
using JornadaMilhas.Dados;
using JornadaMilhasV1.Gerenciador;
using JornadaMilhasV1.Modelos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xunit.Abstractions;
namespace JornadaMilhas.Test.Integracao;
[Collection(nameof(ContextoCollection))]
public class OfertaViagemDalRecuperaMaiorDesconto
{
private readonly JornadaMilhasContext context;
private readonly ContextoFixture fixture;
public OfertaViagemDalRecuperaMaiorDesconto(ContextoFixture fixture)
{
context = fixture.Context;
this.fixture = fixture;
}
[Fact]
// destino = são paulo, desconto = 40, preco = 80
public void RetornaOfertaEspecificaQuandoDestinoSaoPauloEDesconto40()
{
//arrange
var rota = new Rota("Curitiba", "São Paulo");
Periodo periodo = new Periodo(new DateTime(2024, 8, 20), new DateTime(2024, 8, 30));
fixture.CriaDadosfake();
var ofertaEscolhida = new OfertaViagem(rota, periodo, 80)
{
Desconto = 40,
Ativa = true
};
var dal = new OfertaViagemDAL(context);
dal.Adicionar(ofertaEscolhida);
Func<OfertaViagem, bool> filtro = o => o.Rota.Destino.Equals("São Paulo");
var precoEsperado = 40;
//act
var oferta = dal.RecuperaMaiorDesconto(filtro);
//assert
Assert.NotNull(oferta);
Assert.Equal(precoEsperado, oferta.Preco, 0.0001);
}
}