Subsônico 3.0 TestRepository "Find" não está funcionando
-
26-09-2019 - |
Pergunta
Usando o Subsonic 3, tenho uma classe simples chamada "ConferenceRePository" que possui um método que retorna um monte de conferências com base em seu status. Estou testando isso usando o suporte incorporado da Subsonic para testes. Minha configuração do repositório é assim:
// 2 Approved, 4 pending, 3 rejected
var data = new List<Conference>
{
new Conference {Approved = true, Rejected = false},
new Conference {Approved = true, Rejected = false},
new Conference {Approved = false, Rejected = false},
new Conference {Approved = false, Rejected = false},
new Conference {Approved = false, Rejected = false},
new Conference {Approved = false, Rejected = false},
new Conference {Approved = false, Rejected = true},
new Conference {Approved = false, Rejected = true},
new Conference {Approved = false, Rejected = true}
};
Conference.ResetTestRepo();
Conference.Setup(data);
E então minha classe repo finalmente executa esta linha, usando find ():
return Conference.Find(c => c.Approved).ToList();
O problema é que isso sempre retorna todos os registros (9). Eu tentei diferentes critérios, sem sucesso.
Alguém sabe qual é o problema? Tentei corrigir a comparação de igualdade nos modelos TT, conforme descrito aqui: Correções para problemas com o TestRepository do subsônico 3 Mas isso não ajuda.
Solução
Então, mudando de. Encontre para ...
return Conference.All().Where(c => c.Approved == true).ToList();
Resolve isso.
Outras dicas
Não deveria fazer diferença, mas você tentou:
return Conference.Find(c => c.Approved == true).ToList();