Attualmente in una parte del mio progetto esiste un oggetto dominio come sotto:
public class Address
{
public virtual string HouseName { get; set; }
public virtual string HouseNumber { get; set; }
public virtual string RoadName { get; set; }
public virtual string Postcode { get; set; }
public virtual string District { get; private set; }
}
La proprietà District
è una colonna calcolata nel database. A causa dei requisiti del fornitore di accesso ai dati (Entity Framework) è richiesto un set privato. Questo va bene nel normale flusso del programma poiché il Distretto non ha mai bisogno di essere impostato, poiché viene aggiornato quando un record dell'indirizzo viene salvato / aggiornato nel database
Un metodo che voglio testare assomiglia a questo:
public IEnumerable<House> GetHousesWithinSameDistrict (int addressId)
{
var addressToMatch = _addressRepository.FirstOrDefault(address => address.Id == addressId)
return _houseRepository.Where(house => house.Address.District == addressToMatch.District)
}
Questo mi crea problemi quando cerco di impostare la variabile addressToMatch
, in quanto non riesco a impostare la proprietà District
e come tale non posso scrivere un test per verificare che vengano restituiti gli indirizzi corrispondenti corretti.
Come devo fare per impostare un oggetto Address per questo test?