SingleOrDefault - , IEnumerable<T> ( IDbSet<T>). , . RhinoMocks ( ) mock/stub static methods.
, : , ( , , - SingleOrDefault).
: :
-, , , . , , IDbSet:
public class EquiptmentRepository
{
public void Add(Manufacturer m)
{
this.AddToDbSet(m);
}
protected virtual AddToDbSet(Manufacturer m)
{
this.context.Manfuacturers.Add(m);
}
}
, EquiptmentRepository AddToDbSet, , , :
internal void TestableEquiptmentRepository: EquiptmentRepository
{
internal List<Manufacturer> AddedManufacturers = new List<Manufacturer>();
protected override void AddToDbSet(Manufacturer m)
{
this.AddedManufacturers.Add(m);
}
}
Add, , DbSet . :
[Test]
public void AddManufacturer_DoesNotAddExistingManufacturersToDbSet()
{
var stubEntities = MockRepository.GenerateStub<IWsStatContext>();
var stubManufacturers = MockRepository.GenerateStub<IDbSet<Manufacturer>>();
var manufacturer = new Manufacturer() { Name = "Dummy" };
stubManufacturers.Add(manufacturer);
stubEntities.Manufacturers = stubManufacturers;
var sut = new TestableEquiptmentRepository(stubEntities);
sut.AddManufacturer(manufacturer);
Assert.AreEqual(sut.AddedManufacturers.Count(), 0);
}
, EquiptmentRepository.Add DbSet .