How to I setup my Moq to return some values and having the tested service select the right one?
IRepository:
public interface IGeographicRepository
{
IQueryable<Country> GetCountries();
}
Service:
public Country GetCountry(int countryId)
{
return geographicsRepository.GetCountries()
.Where(c => c.CountryId == countryId).SingleOrDefault();
}
Test:
[Test]
public void Can_Get_Correct_Country()
{
//Setup
geographicsRepository.Setup(x => x.GetCountries()).Returns()
//No idea what to do here.
//Call
var country = geoService.GetCountry(1);
//Should return object Country with property CountryName="Jamaica"
//Assert
Assert.IsInstanceOf<Country>(country);
Assert.AreEqual("Jamaica", country.CountryName);
Assert.AreEqual(1, country.CountryId);
geographicsRepository.VerifyAll();
}
I'm basically stuck at the setup.
question from:
https://stackoverflow.com/questions/4481465/using-moq-to-mock-a-repository-that-returns-iqueryablemyobject 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…