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();
        }
예제 #2
0
파일: Program.cs 프로젝트: juanlurie/Tools
 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;
     }
 }
예제 #3
0
        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());
        }
예제 #4
0
        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());
        }