public RepositoryFixture() { // AutoMapper Mapper.Reset(); Mapper.Initialize(cfg => cfg.CreateMap <Entity <int>, FakeModel>()); // data mapper DataMapper = new FakeDataMapper(); // database var dbContextOptionsBuilder = new DbContextOptionsBuilder <FakeDbContext>().UseInMemoryDatabase($"{nameof(RepositoryFixture)}{Guid.NewGuid():N}"); UnitOfWork = new FakeUnitOfWork( dbContext => new FakeRepository(dbContext), dbContextOptionsBuilder.Options, "dbo" ); UnitOfWork.FakeEntityRepository.Insert(new FakeEntity()); UnitOfWork.FakeEntityRepository.Insert(new FakeEntity()); UnitOfWork.FakeEntityRepository.Insert(new FakeEntity()); UnitOfWork.FakeEntityRepository.Insert(new FakeEntity()); UnitOfWork.FakeEntityRepository.Insert(new FakeEntity()); UnitOfWork.Commit(); ExistingFakeEntity = UnitOfWork.FakeEntityRepository.GetList().First(); ExistingFakeModel = UnitOfWork.FakeEntityRepository.GetList <FakeModel>(DataMapper).First(); }
static void Main(string[] args) { try { IUnitOfWork unitOfWork = new FakeUnitOfWork(); var person = unitOfWork.GetRepository<Person>(); person.Add(new Person(){FirstNames = "Billy", Surname = "Bob"}); unitOfWork.Commit(); } catch (Exception ex) { Console.WriteLine(ex.Message); throw; } }
public void Commit_InsertNewEntity_AffectedOneRow() { // Arrange var dbContextOptionsBuilder = new DbContextOptionsBuilder <DbContext>().UseInMemoryDatabase(nameof(Commit_InsertNewEntity_AffectedOneRow)); var unitOfWork = new FakeUnitOfWork( dbContext => new FakeRepository(dbContext), dbContextOptionsBuilder.Options, "dbo" ); var entity = new FakeEntity(); unitOfWork.FakeEntityRepository.Insert(entity); // Act & Assert Assert.Equal(1, unitOfWork.Commit()); }
public void Commit_UpdateNonexistentEntity_DataStorageException() { // Arrange var dbContextOptionsBuilder = new DbContextOptionsBuilder <DbContext>().UseInMemoryDatabase(nameof(Commit_UpdateNonexistentEntity_DataStorageException)); var unitOfWork = new FakeUnitOfWork( dbContext => new FakeRepository(dbContext), dbContextOptionsBuilder.Options, "dbo" ); var entity = new FakeEntity { Id = -1 }; unitOfWork.FakeEntityRepository.Update(entity); // Act & Assert Assert.Throws <DataStorageException>(() => unitOfWork.Commit()); }