2010-09-28 18 views
0

En utilisant Subsonic 3, j'ai une classe simple appelée "ConferenceRepository" qui a une méthode qui renvoie un tas de conférences en fonction de leur statut. Je teste cela en utilisant le support intégré de SubSonic pour les tests. Ma configuration de la prise en pension ressemble à ceci:Subsonic 3.0 TestRepository "Rechercher" ne fonctionne pas

// 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); 

Et puis ma classe repo exécute finalement cette ligne, avec l'option Find():

return Conference.Find(c => c.Approved).ToList(); 

Le problème est, cela renvoie toujours tous les enregistrements (9) . J'ai essayé différents critères de recherche, en vain.

Quelqu'un sait quel est le problème? J'ai essayé de fixer la comparaison d'égalité dans les modèles de tt comme décrit ici: Fixes for problems with SubSonic 3's TestRepository mais cela n'aide pas.

+0

Utilisez-vous les sources les plus récentes de github? – saintedlama

+0

Utilisation du package SubSonic_3.0.0.4.zip téléchargé à partir de github –

Répondre

1

donc passer de .Find à ...

return Conference.All().Where(c => c.Approved == true).ToList(); 

Résout il.

0

ne devrait faire aucune différence, mais avez-vous essayé:

return Conference.Find(c => c.Approved == true).ToList();