private void ReInit()
 {
     eFUnitOfWork.Dispose();
     eFUnitOfWork = new EFUnitOfWork(new DataContainer(DbConnectionHelper.GetConnectionString()));
     charterInRepository = new CharterInRepository(eFUnitOfWork);
        // Repository = new CharterRepository(eFUnitOfWork);
 }
        public AmbientContextSuppressor()
        {
            _savedScope = EFUnitOfWork.GetAmbientScope();

            // We're hiding the ambient scope but not removing its instance
            // altogether. This is to be tolerant to some programming errors.
            //
            // Suppose we removed the ambient scope instance here. If someone
            // was to start a parallel task without suppressing
            // the ambient context and then tried to suppress the ambient
            // context within the parallel task while the original flow
            // of execution was still ongoing (a strange thing to do, I know,
            // but I'm sure this is going to happen), we would end up
            // removing the ambient context instance of the original flow
            // of execution from within the parallel flow of execution!
            //
            // As a result, any code in the original flow of execution
            // that would attempt to access the ambient scope would end up
            // with a null value since we removed the instance.
            //
            // It would be a fairly nasty bug to track down. So don't let
            // that happen. Hiding the ambient scope (i.e. clearing the CallContext
            // in our execution flow but leaving the ambient scope instance untouched)
            // is safe.
            EFUnitOfWork.HideAmbientScope();
        }
        public void SetUp()
        {
            _mockDbContext = new Mock<IDbContext>();
            _mockUnitOfWorkRepository = new Mock<IUnitOfWorkRepository<object>>();

            _testUnitOfWork = new EFUnitOfWork(_mockDbContext.Object);
            _testEntity = new object();
        }
Beispiel #4
0
 public MemberManager()
 {
     // TODO: IoC refactor
     UnitOfWork = new EFUnitOfWork();
     MemberSearchEngine = new SearchEngine<McMember>(UnitOfWork.MemberRepo);
     ProcessSearchEngine = new SearchEngine<Process>(UnitOfWork.ProcessRepo);
     CaseDocSearchEngine = new SearchEngine<CaseDocument>(UnitOfWork.CaseDocumentRepo);
     MemberTypeSearchEngine = new SearchEngine<McMemberType>(UnitOfWork.MemberTypeRepo);
 }
        public void Get()
        {
            using (var c = new DataContainer(DbConnectionHelper.GetConnectionString()))
            {
                var g = new EFUnitOfWork(c);
                //var rep = new ScrapRepository(g, new ScrapConfigurator(new ScrapStateFactory(new ApprovableScrapDomainService(new VesselDomainService))));

                //var res = rep.Find(r => true);
            }
        }
        public void Dispose()
        {
            if (_disposed)
                return;

            if (_savedScope != null)
            {
                EFUnitOfWork.SetAmbientScope(_savedScope);
                _savedScope = null;
            }

            _disposed = true;
        }
Beispiel #7
0
 public void Create(PizzaTypeViewModel pizzaTypeVM)
 {
     Mapper.Initialize(cfg =>
     {
         cfg.CreateMap <PizzaTypeViewModel, PizzaType>();
         cfg.CreateMap <SpotViewModel, Spot>().PreserveReferences(); //.PreserveReferences for avoid circuit references => stackoverflowException
         cfg.CreateMap <PizzaViewModel, Pizza>();
     });
     using (database = new EFUnitOfWork(connectionName))
     {
         database.PizzaTypes.Create(Mapper.Map <PizzaType>(pizzaTypeVM));
         database.Save();
     }
 }
        public AddOrUpdateBlogEntryFileCommandHandlerTest()
        {
            this.unitOfWork = new InMemoryDatabaseFactory().CreateContext();
            this.blogEntryFileFileProvider = new Mock <IBlogEntryFileFileProvider>();

            this.blogEntry = new BlogEntry()
            {
                ShortContent = "Test",
                Header       = "Test"
            };

            this.unitOfWork.BlogEntries.Add(this.blogEntry);
            this.unitOfWork.SaveChanges();
        }
Beispiel #9
0
        public void CanAddFarmer()
        {
            var farmer = new Farmer()
            {
                Name = "Новый хитрый фермер"
            };

            using (var db = new EFUnitOfWork())
            {
                db.Farmers.Create(farmer);
                db.Save();
            }
            Assert.IsTrue(farmer.Id > 0);
        }
Beispiel #10
0
 public void TraceAuditLogoutUser(SessionInfo sessioninfo)
 {
     using (EFUnitOfWork unitOfWork = new EFUnitOfWork())
     {
         //DA_LOGIN_AUDIT foundaudit = unitOfWork.DA_LOGIN_AUDITRepository.GetBySessionInfo(sessioninfo);
         DA_LOGIN_AUDIT foundaudit = unitOfWork.DA_LOGIN_AUDITRepository.GetByID(sessioninfo.ID);
         if (foundaudit != null)
         {
             foundaudit.LOGOUT_DATE = DateTime.Now;
             foundaudit.RESULT      = String.Format("Logout the system on {0}", DateTime.Now.ToString());
         }
         unitOfWork.Commit();
     }
 }
Beispiel #11
0
        public void CreateQuestion_ShouldReturnTrue()
        {
            var questionDTO = new QuestionDTO {
                Id = 6, Text = "someText", Title = "someTitle"
            };

            using var context = new ApplicationDbContext(options);
            var unitOfWork          = new EFUnitOfWork(context);
            var fakeQuestionService = new QuestionService(unitOfWork, _logger.Object, _mapperToQuestion);

            fakeQuestionService.CreateQuestion(questionDTO);

            Assert.NotNull(unitOfWork.Questions.Find(e => e.Id == 6).First());
        }
        public void CreateMessage()
        {
            //DataBaseInitializer<MessageContext>.InitializedDatabase();

            using (BaseContext context = ContextFactory.Create())
            {
                IUnitOfWork uow = new EFUnitOfWork(context);

                IRepositoryGeneric <User> userRepository = uow.GetRepository <User>();//Veri tabanımızı oluşturuyoruz. Varsa default değerleri de insertliyoruz.
                User user1 = new User()
                {
                    Name = "Berkay"
                };
                User user2 = new User()
                {
                    Name = "Arda"
                };
                userRepository.Add(user1);
                userRepository.Add(user2);

                uow.SaveChanges();

                IRepositoryGeneric <Message> msgRepository = uow.GetRepository <Message>();
                msgRepository.Add(new Message()
                {
                    FromUser = user1, ToUser = user2, Text = $"Selam. Nasılsın?", CreateDate = DateTime.Now
                });
                msgRepository.Add(new Message()
                {
                    FromUser = user2, ToUser = user1, Text = $"İyiyim", CreateDate = DateTime.Now
                });
                uow.SaveChanges();

                Console.WriteLine("Tüm mesajlar cekiliyor...");
                foreach (var msg in msgRepository.GetAll())
                {
                    Console.WriteLine(msg.ToString());
                    System.Diagnostics.Debug.WriteLine(msg.Text.ToString());
                    HttpContext.Current.Response.Write(msg.Text.ToString());
                }

                Console.WriteLine("Berkay'ın mesajları çekiliyor");
                foreach (var msg in msgRepository.GetAll((m) => m.FromUser.Name == "Berkay"))
                {
                    Console.WriteLine(msg.ToString());
                    System.Diagnostics.Debug.WriteLine(msg.Text.ToString());
                    HttpContext.Current.Response.Write(msg.Text.ToString());
                }
            }
        }
Beispiel #13
0
        public AddBlogEntryCommentCommandHandlerTest()
        {
            this.unitOfWork = new InMemoryDatabaseFactory().CreateContext();
            this.notificationsServiceMock = new Mock <INotificationService>();

            this.blogEntry = new BlogEntry()
            {
                ShortContent = "Test",
                Header       = "Test"
            };

            this.unitOfWork.BlogEntries.Add(this.blogEntry);
            this.unitOfWork.SaveChanges();
        }
Beispiel #14
0
        public DeleteImageCommandHandlerTest()
        {
            this.unitOfWork            = new InMemoryDatabaseFactory().CreateContext();
            this.imageFileProviderMock = new Mock <IImageFileProvider>();

            this.image = new Image()
            {
                Name = "test.png"
            };
            this.unitOfWork.Images.Add(this.image);
            this.unitOfWork.SaveChanges();

            Assert.Single(this.unitOfWork.Images);
        }
        public IncrementBlogEntryVisitsCommandHandlerTest()
        {
            this.unitOfWork = new InMemoryDatabaseFactory().CreateContext();

            this.blogEntry = new BlogEntry()
            {
                ShortContent = "Test",
                Header       = "Test"
            };

            this.unitOfWork.BlogEntries.Add(this.blogEntry);
            this.unitOfWork.SaveChanges();

            Assert.Single(this.unitOfWork.BlogEntries);
        }
        public void PsalmsMigrationManager_CsTest()
        {
            var uof     = new EFUnitOfWork();
            var service = new FakePsalterService(uof);

            var manager = new PsalmsMigrationManager(service);

            string folderPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData\PsalterMigration\1");

            manager.MigratePsalms(new PsalterRuReader(folderPath, "cs-ru"));

            manager.MigratePsalms(new PsalterCsReader(folderPath, "cs-cs"));

            //uof.Commit();
        }
        public void PsalmsMigrationManager_Test()
        {
            var uof     = new EFUnitOfWork();
            var service = new FakePsalterService(uof);

            var manager = new PsalmsMigrationManager(service);

            string folderPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData\PsalterMigration");

            manager.MigratePsalms(new PsalterRuReader(folderPath, "cs-ru"));

            Assert.That(service.Psalms.Count(), Is.EqualTo(150));

            //uof.Commit();
        }
        public static BookStorage Create()
        {
            EFUnitOfWork _unitOfWork = new EFUnitOfWork();

            var easters = new EasterContext(_unitOfWork);

            return(new BookStorage(new EvangelionContext(_unitOfWork),
                                   new ApostolContext(_unitOfWork),
                                   new OldTestamentContext(_unitOfWork),
                                   new PsalterContext(_unitOfWork),
                                   new OktoikhContext(_unitOfWork, easters),
                                   new TheotokionAppContext(_unitOfWork),
                                   new EasterContext(_unitOfWork),
                                   new KatavasiaContext(_unitOfWork)));
        }
Beispiel #19
0
        static void test()
        {
            IUnitOfWork            unitOfWork   = new EFUnitOfWork();
            IRepository <Customer> customerRepo = new Repository <Customer>(unitOfWork);

            var entity = customerRepo.Create(new Customer()
            {
                Name = "SS"
            });

            customerRepo.Save();
            entity.Name = "TT" + entity.ID;
            customerRepo.Update(entity);
            customerRepo.Save();
        }
        public async void RejectChangesTest()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            await unitOfWork.Repository <RandomizerList>().Remove(1);

            await unitOfWork.CancelChangesAsync();

            await unitOfWork.SaveChangesAsync();

            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Count().Should().Be(3);
        }
        public async void Delete()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            var chewie = await unitOfWork.Repository <RandomizerList>().Get(1);

            await unitOfWork.Repository <RandomizerList>().Remove(chewie);

            await unitOfWork.SaveChangesAsync();

            Assert.Empty((await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Where(n => n.Name.Equals("Beers")));
        }
Beispiel #22
0
        public async Task EFUnitOfWorkTests_GetAircraft_Asynchronously_ShouldReturnAnAircraftWhenAircraftIdExistsInDatabase()
        {
            // Arrange
            var context = new EFUnitOfWork(_contextBuilder.Options);

            // Expected
            var expectedAircraft = _aircraftsRecords.First();

            // Act
            var currentAircraft = await context.CreateSet <Aircraft>().FindAsync(expectedAircraft.Id);

            // Assert
            Check.That(currentAircraft).IsNotNull();
            Check.That(currentAircraft).HasFieldsWithSameValues(expectedAircraft);
        }
Beispiel #23
0
        public static ContentService CreateContentService()
        {
            IUnitOfWork             uow = new EFUnitOfWork();
            IArticleRepository      articleRepository      = new ArticleRepository(uow);
            ISiteNodeRepository     siteNodeRepository     = new SiteNodeRepository(uow);
            INewsRepository         newsRepository         = new NewsRepository(uow);
            ICompanyRepository      companyRepository      = new CompanyRepository(uow);
            IIdeaRepository         ideaRepository         = new IdeaRepository(uow);
            ICommentRepository      commentRepository      = new CommentRepository(uow);
            IVacancyRepository      vacancyRepository      = new VacancyRepository(uow);
            IAnnouncementRepository announcementRepository = new AnnouncementRepository(uow);

            return(new ContentService(articleRepository, siteNodeRepository, newsRepository, companyRepository, ideaRepository,
                                      commentRepository, vacancyRepository, announcementRepository, uow, HttpContext.Current));
        }
Beispiel #24
0
        public void EFUnitOfWorkTests_GetAirport_ShouldReturnAnAirportWhenAirportIdExistsInDatabase()
        {
            // Arrange
            var context = new EFUnitOfWork(_contextBuilder.Options);

            // Expected
            var expectedAirport = _airportsRecords.First();

            // Act
            var currentAirport = context.CreateSet <Airport>().Find(expectedAirport.Id);

            // Assert
            Check.That(currentAirport).IsNotNull();
            Check.That(currentAirport).HasFieldsWithSameValues(expectedAirport);
        }
        public void EF_ProductsAssociatedCategoryIsLoadedOnAccess()
        {
            using (var uow = new EFUnitOfWork(this.AuthenticationProvider, this.MessageProvider, this.EventDispatcher, this.Connection))
            {
                // For testing purposes, the in-memory Effort database has to be initialized at the beginning of each test
                (new MonolithicRepository(uow)).Database.Initialize(true);

                var repo = new ProductRepository(uow, this._configuration);

                Product p = repo.Get <Product>().Where(x => x.Name == "Dove").FirstOrDefault();

                Assert.IsNotNull(p.Category);
                Assert.AreEqual("Soap", p.Category.Name);
            }
        }
        public static void DemoEF()
        {
            // TODO 等待完成
            ApplicationDbContext context = null;

            // 可以使用DI注入
            using (var uow = new EFUnitOfWork(context))
            {
                // 等待完成
                // uow.GetRepository<>


                uow.Save();
            }
        }
Beispiel #27
0
 public void StopOrder(int orderId, int?endSpotId)
 {
     using (database = new EFUnitOfWork(connectionName))
     {
         var order = database.Orders.Get(orderId);
         if (order.EndDateTime != null || order.EndSpotId != null)
         {
             throw new InvalidOperationException("Заказ уже был завершен ранее");
         }
         order.EndSpotId    = endSpotId;
         order.EndDateTime  = System.DateTime.Now;
         order.Pizza.SpotId = endSpotId;
         database.Save();
     }
 }
Beispiel #28
0
        public void addingUser()
        {
            EFUnitOfWork unitOfWork = new EFUnitOfWork();
            User         obj        = new User {
                Name = "sec", Password = "******"
            };

            unitOfWork.Users.Create(obj);
            var u2 = unitOfWork.Users.
                     Find(u => u.Name == "sec" && u.Password == "123").GetEnumerator();

            u2.MoveNext();
            Assert.AreEqual(obj.Name + obj.Password, u2.Current.Name + obj.Password);
            unitOfWork.Users.Delete(obj.Id);
        }
Beispiel #29
0
        static void Main(string[] args)
        {
            DataContext dataContext = new DataContext();
            IUnitOfWork unitOfWork  = new EFUnitOfWork(dataContext);


            IMarketerServices  marketerServices   = new MarketerServices(unitOfWork);
            MarketerController marketerController = new MarketerController(marketerServices);
            View view = new View(marketerController);

            while (true)
            {
                view.MakeAction();
            }
        }
Beispiel #30
0
        static void Main(string[] args)
        {
            //using (var data = new DataContext())
            //{
            //}
            WebConfigRepository wr = new WebConfigRepository();
            EFUnitOfWork        ef = new EFUnitOfWork();

            wr.UnitOfWork = ef;
            wr.Add(new Model.WebConfig()
            {
                IsInitialed = true
            });
            ef.Commit();
        }
 private void InitializeDb()
 {
     using (var unitOfWork = new EFUnitOfWork(dbOptions))
     {
         var userRepository = unitOfWork.UserRepository;
         userRepository.Add(new User
         {
             Name     = "Test",
             Surname  = "Passed",
             Email    = userEmail,
             Password = "******"
         });
         unitOfWork.Save();
     }
 }
Beispiel #32
0
        public ObservableCollection <SpotViewModel> GetVacantSpots()
        {
            var mapper = AutoMapperConfigs.SpotToSpotVM.CreateMapper();

            using (database = new EFUnitOfWork(connectionName))
            {
                //return mapper.Map<ObservableCollection<SpotViewModel>>(database
                //        .Spots.GetAll().Where(s => (s.Capacity - s.Pizzas.Count) > 0));
                //Если делать по нормальному, то:
                //InvalidOperationException: Существует назначенный этой команде Command открытый DataReader,
                //который требуется предварительно закрыть
                return(mapper.Map <ObservableCollection <SpotViewModel> >(database
                                                                          .Spots
                                                                          .Find(s => ((s.Capacity - s.Pizzas.Count) > 0))));
            }
        }
        public void Dispose_disposes_all_open_IEFSession_instances()
        {
            var resolver = MockRepository.GenerateMock<IEFSessionResolver>();
            resolver.Stub(x => x.GetSessionKeyFor<string>()).Return(Guid.NewGuid());
            resolver.Stub(x => x.GetSessionKeyFor<int>()).Return(Guid.NewGuid());
            resolver.Stub(x => x.OpenSessionFor<string>()).Return(MockRepository.GenerateStub<IEFSession>());
            resolver.Stub(x => x.OpenSessionFor<int>()).Return(MockRepository.GenerateStub<IEFSession>());

            var unitOfWork = new EFUnitOfWork(resolver);
            unitOfWork.GetSession<string>();
            unitOfWork.GetSession<int>();

            unitOfWork.Dispose();
            resolver.OpenSessionFor<string>().AssertWasCalled(x => x.Dispose());
            resolver.OpenSessionFor<int>().AssertWasCalled(x => x.Dispose());
        }
Beispiel #34
0
        public MA_PCCF_CONFIG CreateConfig(SessionInfo sessioninfo, MA_PCCF_CONFIG data)
        {
            using (EFUnitOfWork unitOfWork = new EFUnitOfWork())
            {
                var checkDuplicate = unitOfWork.MA_PCCF_CONFIGRepository.GetAll().FirstOrDefault(p => p.LABEL.ToLower().Equals(data.LABEL.ToLower()));
                if (checkDuplicate != null)
                {
                    throw this.CreateException(new Exception(), Messages.DUPLICATE_DATA);
                }

                unitOfWork.MA_PCCF_CONFIGRepository.Add(data);
                unitOfWork.Commit();
            }

            return(data);
        }
        public void Flush_calls_SubmitChanges_on_all_open_IEFSession_instances()
        {
            var resolver = MockRepository.GenerateMock<IEFSessionResolver>();
            resolver.Stub(x => x.GetSessionKeyFor<string>()).Return(Guid.NewGuid());
            resolver.Stub(x => x.GetSessionKeyFor<int>()).Return(Guid.NewGuid());
            resolver.Stub(x => x.OpenSessionFor<string>()).Return(MockRepository.GenerateStub<IEFSession>());
            resolver.Stub(x => x.OpenSessionFor<int>()).Return(MockRepository.GenerateStub<IEFSession>());

            var unitOfWork = new EFUnitOfWork(resolver);
            unitOfWork.GetSession<string>();
            unitOfWork.GetSession<int>();

            unitOfWork.Flush();
            resolver.OpenSessionFor<string>().AssertWasCalled(x => x.SaveChanges());
            resolver.OpenSessionFor<int>().AssertWasCalled(x => x.SaveChanges());
        }
Beispiel #36
0
        public MA_CONFIG_ATTRIBUTE CreateFactor(SessionInfo sessioninfo, MA_CONFIG_ATTRIBUTE factor)
        {
            using (EFUnitOfWork unitOfWork = new EFUnitOfWork())
            {
                var checkDuplicate = unitOfWork.MA_CONFIG_ATTRIBUTERepository.GetAll().FirstOrDefault(p => p.PCCF_CONFIG_ID == factor.PCCF_CONFIG_ID && p.TABLE == factor.TABLE && p.ATTRIBUTE == factor.ATTRIBUTE && p.ISACTIVE);
                if (checkDuplicate != null)
                {
                    throw this.CreateException(new Exception(), Messages.DUPLICATE_DATA);
                }

                unitOfWork.MA_CONFIG_ATTRIBUTERepository.Add(factor);
                unitOfWork.Commit();
            }

            return(factor);
        }
Beispiel #37
0
        public void EFUnitOfWorkTests_ShouldNotFindAnyAircraftsRecords()
        {
            //Arrange && Expected
            var context      = new EFUnitOfWork(_contextBuilder.Options);
            var aircraftCode = "AnyAircraft";

            Expression <Func <Aircraft, bool> > filter = (Aircraft a) =>
                                                         (a.Code == aircraftCode);

            // Act
            var foundAircrafts = context.CreateSet <Aircraft>().Where(filter).ToList();

            // Assert
            Check.That(foundAircrafts).IsNotNull();
            Check.That(foundAircrafts).IsEmpty();
        }
Beispiel #38
0
 public void CanDeleteCrop()
 {
     using (var db = new EFUnitOfWork())
     {
         var crop = db.Crops.Get().FirstOrDefault();
         if (crop != null)
         {
             db.Crops.Remove(crop);
         }
         else
         {
             throw new Exception("Нет ни одного объекта crop");
         }
         db.Save();
     }
 }
        public void GetSessionFor_returns_different_session_for_types_handled_by_different_context()
        {
            var resolver = MockRepository.GenerateMock<IEFSessionResolver>();
            resolver.Stub(x => x.GetSessionKeyFor<string>()).Return(Guid.NewGuid());
            resolver.Stub(x => x.GetSessionKeyFor<int>()).Return(Guid.NewGuid());
            resolver.Stub(x => x.OpenSessionFor<string>()).Return(MockRepository.GenerateStub<IEFSession>());
            resolver.Stub(x => x.OpenSessionFor<int>()).Return(MockRepository.GenerateStub<IEFSession>());

            var unitOfWork = new EFUnitOfWork(resolver);
            var stringSession = unitOfWork.GetSession<string>();
            var intSession = unitOfWork.GetSession<int>();

            Assert.That(stringSession, Is.Not.SameAs(intSession));
            resolver.AssertWasCalled(x => x.GetSessionKeyFor<string>());
            resolver.AssertWasCalled(x => x.GetSessionKeyFor<int>());
            resolver.AssertWasCalled(x => x.OpenSessionFor<string>());
            resolver.AssertWasCalled(x => x.OpenSessionFor<int>());
        }
        public void Can_get_orders_by_filter()
        {
            try
            {
                using (var c = new DataContainer(DbConnectionHelper.GetConnectionString()))
                {
                    var g = new EFUnitOfWork(c);
                    var rep = new OrderRepository(g);
                    Order result = rep.First(d => d.Id > 0);
                }

            }
            catch (Exception ex)
            {

                throw;
            }
        }
        public void Dispose_disposes_all_open_IEFSession_instances()
        {
            var resolver = new Mock<IEFSessionResolver>();
            resolver.Setup(x => x.GetSessionKeyFor<string>()).Returns(Guid.NewGuid());
            resolver.Setup(x => x.GetSessionKeyFor<int>()).Returns(Guid.NewGuid());
            var session = new Mock<IEFSession>();
            resolver.Setup(x => x.OpenSessionFor<string>()).Returns(session.Object);
            resolver.Setup(x => x.OpenSessionFor<int>()).Returns(session.Object);

            var unitOfWork = new EFUnitOfWork(resolver.Object);
            unitOfWork.GetSession<string>();
            unitOfWork.GetSession<int>();

            unitOfWork.Dispose();
            resolver.Object.OpenSessionFor<string>();
            session.Verify(x => x.Dispose());
            session.Verify(x => x.Dispose());
        }
        public void GetSessionFor_returns_different_session_for_types_handled_by_different_context()
        {
            var resolver = new Mock<IEFSessionResolver>();
            resolver.Setup(x => x.GetSessionKeyFor<string>()).Returns(Guid.NewGuid());
            resolver.Setup(x => x.GetSessionKeyFor<int>()).Returns(Guid.NewGuid());
            resolver.Setup(x => x.OpenSessionFor<string>()).Returns(new Mock<IEFSession>().Object);
            resolver.Setup(x => x.OpenSessionFor<int>()).Returns(new Mock<IEFSession>().Object);

            var unitOfWork = new EFUnitOfWork(resolver.Object);
            var stringSession = unitOfWork.GetSession<string>();
            var intSession = unitOfWork.GetSession<int>();

            Assert.AreNotSame(stringSession, intSession);
            resolver.Verify(x => x.GetSessionKeyFor<string>());
            resolver.Verify(x => x.GetSessionKeyFor<int>());
            resolver.Verify(x => x.OpenSessionFor<string>());
            resolver.Verify(x => x.OpenSessionFor<int>());
        }
        public void Flush_calls_SubmitChanges_on_all_open_IEFSession_instances()
        {
            var resolver = new Mock<IEFSessionResolver>();
            resolver.Setup(x => x.GetSessionKeyFor<string>()).Returns(Guid.NewGuid());
            resolver.Setup(x => x.GetSessionKeyFor<int>()).Returns(Guid.NewGuid());
            var session = new Mock<IEFSession>();
            resolver.Setup(x => x.OpenSessionFor<string>()).Returns(session.Object);
            resolver.Setup(x => x.OpenSessionFor<int>()).Returns(session.Object);

            var unitOfWork = new EFUnitOfWork(resolver.Object);
            unitOfWork.GetSession<string>();
            unitOfWork.GetSession<int>();

            unitOfWork.Flush();
            resolver.Object.OpenSessionFor<string>();
            session.Verify(x => x.SaveChanges());
            resolver.Object.OpenSessionFor<int>();
            session.Verify(x => x.SaveChanges());
        }
Beispiel #44
0
 public override string[] GetRolesForUser(string username)
 {
     var efUnitOfWork = new EFUnitOfWork();
     var adminRepos = new administratorsRepository(new EFRepository<administrators>(), efUnitOfWork);
     var adminUser = adminRepos.GetByUsername(username);
     if (adminUser != null)
     {
         return new string[] { CustomRoles.Admin.ToString() };
     }else
     {
         var lecurerRepos = new lecturersRepository(new EFRepository<lecturers>(), efUnitOfWork);
         var lecturerUser =  lecurerRepos.GetByUsername(username);
         if(lecturerUser!=null)
         {
             return new string[] { CustomRoles.Lecturer.ToString() };
         }
     }
     return new string[] { CustomRoles.Student.ToString() };
 }
Beispiel #45
0
        public void BeginTransaction_Should_Start_A_New_Transaction_With_Specified_IsolatinLevel()
        {
            var isoLevel = IsolationLevel.Snapshot;
            var mockDataContext = MockRepository.GenerateMock<IEFSession>();
            var mockConnection = MockRepository.GenerateMock<IDbConnection>();
            var mockTransaction = MockRepository.GenerateStub<IDbTransaction>();

            mockDataContext.Stub(x => x.Connection).Return(mockConnection);
            mockConnection.Expect(x => x.BeginTransaction(isoLevel)).Return(mockTransaction);

            var unitOfWork = new EFUnitOfWork(mockDataContext);
            Assert.That(!unitOfWork.IsInTransaction);
            unitOfWork.BeginTransaction(IsolationLevel.Snapshot);
            Assert.That(unitOfWork.IsInTransaction);

            mockDataContext.VerifyAllExpectations();
            mockConnection.VerifyAllExpectations();
            mockTransaction.VerifyAllExpectations();
        }
Beispiel #46
0
        public void Begin_Transaction_Should_Start_A_New_Transaction_With_Default_IsolationLevel()
        {
            var mockDataContext = MockRepository.GenerateMock<IEFSession>();
            var mockConnection = MockRepository.GenerateMock<IDbConnection>();
            var mockTransaction = MockRepository.GenerateMock<IDbTransaction>();

            mockDataContext.Stub(x => x.Connection).Return(mockConnection);
            mockConnection.Expect(x => x.BeginTransaction(IsolationLevel.ReadCommitted)).Return(mockTransaction);

            var unitOfWork = new EFUnitOfWork(mockDataContext);
            Assert.That(!unitOfWork.IsInTransaction);
            unitOfWork.BeginTransaction();

            Assert.That(unitOfWork.IsInTransaction);

            //mockDataContext.VerifyAllExpectations();
            mockConnection.VerifyAllExpectations();
            mockTransaction.VerifyAllExpectations();
        }
Beispiel #47
0
        public void BeginTransaction_Throws_InvalidOperationException_When_Transaction_Already_Running()
        {
            var mockDataContext = MockRepository.GenerateMock<IEFSession>();
            var mockConnection = MockRepository.GenerateMock<IDbConnection>();
            var mockTransaction = MockRepository.GenerateMock<IDbTransaction>();

            mockDataContext.Stub(x => x.Connection).Return(mockConnection);
            mockConnection.Expect(x => x.BeginTransaction(IsolationLevel.Unspecified))
                            .IgnoreArguments().Return(mockTransaction);

            var unitOfWork = new EFUnitOfWork(mockDataContext);
            unitOfWork.BeginTransaction();

            Assert.That(unitOfWork.IsInTransaction);
            Assert.Throws<InvalidOperationException>(() => unitOfWork.BeginTransaction());

            mockDataContext.VerifyAllExpectations();
            mockConnection.VerifyAllExpectations();
            mockTransaction.VerifyAllExpectations();
        }
 public void Init()
 {
     eFUnitOfWork = new EFUnitOfWork(new DataContainer());
      charterRepository = new CharterRepository(eFUnitOfWork);
 }
 public CharterOutRepository(EFUnitOfWork efUnitOfWork)
     : base(efUnitOfWork)
 {
 }
Beispiel #50
0
        public void TransactionalFlush_Starts_A_Transaction_With_Default_Isolation_And_Commits_When_Flush_Succeeds()
        {
            var mockDataContext = MockRepository.GenerateMock<IEFSession>();
            var mockConnection = MockRepository.GenerateMock<IDbConnection>();
            var mockTransaction = MockRepository.GenerateMock<IDbTransaction>();

            mockDataContext.Stub(x => x.Connection).Return(mockConnection);
            mockConnection.Expect(x => x.BeginTransaction(IsolationLevel.Unspecified))
                          .IgnoreArguments()
                          .Return(mockTransaction);

            mockDataContext.Expect(x => x.SaveChanges());
            mockConnection.Expect(x => x.State).Return(ConnectionState.Closed); //First call should be closed
            mockConnection.Expect(x => x.Open());
            mockTransaction.Expect(x => x.Commit());
            mockConnection.Expect(x => x.State).Return(ConnectionState.Open); //Second call should be open
            mockConnection.Expect(x => x.Close());

            var unitOfWork = new EFUnitOfWork(mockDataContext);
            unitOfWork.TransactionalFlush();

            mockDataContext.VerifyAllExpectations();
            mockConnection.VerifyAllExpectations();
            mockTransaction.VerifyAllExpectations();
        }
Beispiel #51
0
        public void TransactionalFlush_Rollsback_Transaction_When_Flush_Throws_Exception()
        {
            var mockDataContext = MockRepository.GenerateMock<IEFSession>();
            var mockConnection = MockRepository.GenerateMock<IDbConnection>();
            var mockTransaction = MockRepository.GenerateMock<IDbTransaction>();

            mockDataContext.Stub(x => x.Connection).Return(mockConnection);
            mockConnection.Expect(x => x.BeginTransaction(IsolationLevel.Unspecified))
                          .IgnoreArguments()
                          .Return(mockTransaction);
            mockDataContext.Expect(x => x.SaveChanges()).Throw(new Exception());
            mockTransaction.Expect(x => x.Rollback());

            var unitOfWork = new EFUnitOfWork(mockDataContext);
            Assert.Throws<Exception>(unitOfWork.TransactionalFlush);

            mockDataContext.VerifyAllExpectations();
            mockConnection.VerifyAllExpectations();
            mockTransaction.VerifyAllExpectations();
        }
        public void GetSessionFor_returns_session_for_type()
        {
            var resolver = new Mock<IEFSessionResolver>();
            resolver.Setup(x => x.GetSessionKeyFor<string>()).Returns(Guid.NewGuid());
            resolver.Setup(x => x.OpenSessionFor<string>()).Returns(new Mock<IEFSession>().Object);

            var unitOfWork = new EFUnitOfWork(resolver.Object);
            var session = unitOfWork.GetSession<string>();
            Assert.IsNotNull(session);
        }
Beispiel #53
0
        public void TransactionalFlush_Starts_A_Transaction_With_Specified_IsolationLevel_And_Commits_When_Flush_Succeeds()
        {
            var mockDataContext = MockRepository.GenerateMock<IEFSession>();
            var mockConnection = MockRepository.GenerateMock<IDbConnection>();
            var mockTransaction = MockRepository.GenerateMock<IDbTransaction>();

            mockDataContext.Stub(x => x.Connection).Return(mockConnection);
            mockConnection.Expect(x => x.BeginTransaction(IsolationLevel.Unspecified))
                          .IgnoreArguments()
                          .Return(mockTransaction);
            mockDataContext.Expect(x => x.SaveChanges());
            mockTransaction.Expect(x => x.Commit());

            var unitOfWork = new EFUnitOfWork(mockDataContext);
            unitOfWork.TransactionalFlush(IsolationLevel.ReadUncommitted);

            mockDataContext.VerifyAllExpectations();
            mockConnection.VerifyAllExpectations();
            mockTransaction.VerifyAllExpectations();
        }
Beispiel #54
0
        public void Comitting_Transaction_Releases_Transaction_From_UnitOfWork()
        {
            var mockDataContext = MockRepository.GenerateMock<IEFSession>();
            var mockConnection = MockRepository.GenerateMock<IDbConnection>();
            var mockTransaction = MockRepository.GenerateMock<IDbTransaction>();

            mockDataContext.Stub(x => x.Connection).Return(mockConnection);
            mockConnection.Expect(x => x.BeginTransaction(IsolationLevel.Unspecified))
                          .IgnoreArguments()
                          .Return(mockTransaction);
            mockTransaction.Expect(x => x.Commit());

            var unitOfWork = new EFUnitOfWork(mockDataContext);
            var transaction = unitOfWork.BeginTransaction();

            Assert.That(unitOfWork.IsInTransaction);
            transaction.Commit();
            Assert.That(!unitOfWork.IsInTransaction);

            mockDataContext.VerifyAllExpectations();
            mockConnection.VerifyAllExpectations();
            mockTransaction.VerifyAllExpectations();
        }
Beispiel #55
0
        public void TransactionalFlush_Uses_Existing_Transaction_When_Transactional_AlreadyRunning()
        {
            var mockDataContext = MockRepository.GenerateMock<IEFSession>();
            var mockConnection = MockRepository.GenerateMock<IDbConnection>();
            var mockTransaction = MockRepository.GenerateMock<IDbTransaction>();

            mockDataContext.Expect(x => x.Connection).Repeat.Any().Return(mockConnection);
            mockConnection.Stub(x => x.BeginTransaction(IsolationLevel.Unspecified))
                          .IgnoreArguments()
                          .Repeat.Once()
                          .Return(mockTransaction);

            var unitOfWork = new EFUnitOfWork(mockDataContext);

            unitOfWork.BeginTransaction();
            unitOfWork.TransactionalFlush();

            mockDataContext.VerifyAllExpectations();
            mockConnection.VerifyAllExpectations();
            mockTransaction.VerifyAllExpectations();
        }
 public void Init()
 {
     eFUnitOfWork = new EFUnitOfWork(new DataContainer(DbConnectionHelper.GetConnectionString()));
     charterInRepository = new CharterInRepository(eFUnitOfWork);
     //Repository = new CharterRepository(eFUnitOfWork);
 }
Beispiel #57
0
		public EFTransaction(EFUnitOfWork uow)
		{
			_uow = uow;
			_trans = uow.Context.Database.BeginTransaction();
		}
Beispiel #58
0
		public EFTransaction(EFUnitOfWork uow, System.Data.IsolationLevel level)
		{
			_uow = uow;
			_trans = uow.Context.Database.BeginTransaction(level);
		}
        private void SetUpDatabase(int count)
        {
            DataUtil.CreateDatabase(TestConstants.EF_DatabaseName);
            DataUtil.ExecuteNonQuery(TestConstants.EF_DatabaseName, TestConstants.EF_CreateTableSql);
            for (int i = 0; i < count; i++)
            {
                var name = (i < _dogNames.Length) ? _dogNames[i] : String.Format("Name_{0}", i);
                var age = (i < _dogNames.Length) ? _dogAges[i] : i.ToString();

                DataUtil.ExecuteNonQuery(TestConstants.EF_DatabaseName, String.Format(TestConstants.EF_InsertRow, name, age));
            }

            _efUnitOfWork = CreateEFUnitOfWork();
        }
Beispiel #60
0
		public void Dispose()
		{
			_uow = null;
			_trans.Dispose();
		}