public void BeginTransaction_Throws_InvalidOperationException_When_Transaction_Already_Running()
		{
			var mockSession = MockRepository.GenerateStub<ISession>();
			mockSession.Stub(x => x.BeginTransaction(IsolationLevel.Unspecified))
				.IgnoreArguments().Return(MockRepository.GenerateStub<ITransaction>());

			var unitOfWork = new NHibernateUnitOfWork(mockSession);
			unitOfWork.BeginTransaction();

			unitOfWork.IsInTransaction.ShouldBeTrue();

			Assert.Throws<InvalidOperationException>(() => { unitOfWork.BeginTransaction(); });
		}
		public void Comitting_Transaction_Releases_Transaction_From_UnitOfWork()
		{
			var mockSession = MockRepository.GenerateMock<ISession>();
			mockSession.Expect(x => x.BeginTransaction(IsolationLevel.ReadCommitted))
				.Return(MockRepository.GenerateStub<ITransaction>());

			var unitOfWork = new NHibernateUnitOfWork(mockSession);
			Magnum.Data.ITransaction transaction = unitOfWork.BeginTransaction();

			unitOfWork.IsInTransaction.ShouldBeTrue();
			transaction.Commit();
			unitOfWork.IsInTransaction.ShouldBeFalse();
			mockSession.VerifyAllExpectations();
		}
		public void BeginTransaction_Should_Start_A_New_Transaction_With_Specified_IsolatinLevel()
		{
			var mockSession = MockRepository.GenerateMock<ISession>();
			var mockTransaction = MockRepository.GenerateStub<ITransaction>();

			mockSession.Expect(x => x.BeginTransaction(IsolationLevel.Snapshot))
				.Return(mockTransaction);

			var unitOfWork = new NHibernateUnitOfWork(mockSession);
			unitOfWork.IsInTransaction.ShouldBeFalse();
			unitOfWork.BeginTransaction(IsolationLevel.Snapshot);

			unitOfWork.IsInTransaction.ShouldBeTrue();
			mockSession.VerifyAllExpectations();
		}
        public void Start_CreatesNHibernateUnitOfWorkAndBeginsWithTwoTransaction() {
            // Arrange

            // Act
            var unitOfWork = new NHibernateUnitOfWork(SessionFactory);
            using (var unitOfWorkRootScope = unitOfWork.Start()) {
                using (var unitOfWorkScope = unitOfWork.Start()) {
                    unitOfWorkScope.Rollback();
                }

                unitOfWorkRootScope.Commit();
            }


            // Assert
        }
        public void all_other_methods_should_throw_if_not_initialized()
        {
            _uow = new NHibernateUnitOfWork(_nHibernateSessionFactory);

            var flags = BindingFlags.Public | BindingFlags.DeclaredOnly;
            var exception = typeof(InvalidOperationException);

            var methods = typeof(NHibernateUnitOfWork).GetMethods(flags).Where(m => m.Name != "Initialize" && m.Name != "Dispose");

            methods.Each(m =>
            {
                var paramCount = m.GetParameters().Length;
                var methodParams = new object[paramCount];

                paramCount.IterateFromZero(idx => methodParams[idx] = null);

                exception.ShouldBeThrownBy(() => m.Invoke(_uow, methodParams), m.Name);
            });
        }
Esempio n. 6
0
        public void Setup()
        {
            _cfg = new Configuration();

            _cfg.SetProperty("connection.provider", "NHibernate.Connection.DriverConnectionProvider");
            _cfg.SetProperty("connection.driver_class", "NHibernate.Driver.SqlClientDriver");
            _cfg.SetProperty("connection.connection_string", _connectionString);
            _cfg.SetProperty("dialect", "NHibernate.Dialect.MsSql2005Dialect");
            _cfg.SetProperty("default_schema", "bus");

            _cfg.AddAssembly(typeof(StateMachineStorage_Specs).Assembly);

            ISessionFactory _sessionFactory = _cfg.BuildSessionFactory();

            LocalContext.Current.Store(_sessionFactory);

            NHibernateUnitOfWork.SetSessionProvider(() => LocalContext.Current.Retrieve <ISessionFactory>().OpenSession());

            UnitOfWork.SetUnitOfWorkProvider(NHibernateUnitOfWork.Create);
        }
Esempio n. 7
0
        private static void prepareGremio(Gremio gremio)
        {
            var direccion = gremio.Direccion;

            saveDepartamentoMunicipio(direccion.Departamento, direccion.Municipio);

            using (var uow = new NHibernateUnitOfWork(_sessionFactory.OpenSession()))
            {
                var representanteRepository = new RepresentanteLegalRepositoryReadOnly(uow.Session);
                var direccionRepository     = new DireccionRepositoryReadOnly(uow.Session);
                var gremioRead = new GremioRepositoryReadOnly(uow.Session);
                if (!gremioRead.exists(gremio.Id))
                {
                    var gremioRepository = new GremioRepositoryCommands(uow.Session, representanteRepository,
                                                                        direccionRepository);
                    gremioRepository.save(gremio);
                    uow.commit();
                }
            }
        }
Esempio n. 8
0
        private static void prepareEmpresa(Empresa empresa)
        {
            var gremio      = empresa.Gremial;
            var sucursales  = empresa.Sucursales;
            var actividades = empresa.ActividadesEconomicas;

            prepareGremio(gremio);
            sucursales.ToList().ForEach(x => prepareUser(x.Firma.User));
            actividades.ToList().ForEach(prepareActividades);


            _session = _sessionFactory.OpenSession();
            using (var uow = new NHibernateUnitOfWork(_sessionFactory.OpenSession()))
            {
                var repositoryGremios = new GremioRepositoryReadOnly(uow.Session);
                var repository        = new EmpresaRepositoryCommands(uow.Session, repositoryGremios);
                repository.save(empresa);
                uow.commit();
            }
        }
Esempio n. 9
0
        protected void Application_Start(object sender, EventArgs e)
        {
            XmlConfigurator.Configure();

            _container = new DefaultMassTransitContainer(Server.MapPath("/web-castle.config"));

            Configuration _cfg = new Configuration().Configure();

            _cfg.AddAssembly(typeof(NHibernateRepositoryFactory).Assembly);

            ISessionFactory _sessionFactory = _cfg.BuildSessionFactory();

            LocalContext.Current.Store(_sessionFactory);

            NHibernateUnitOfWork.SetSessionProvider(_sessionFactory.OpenSession);

            UnitOfWork.SetUnitOfWorkProvider(NHibernateUnitOfWork.Create);

            _container.Kernel.AddComponentInstance <IRepositoryFactory>(NHibernateRepositoryFactory.Configure(x => { }));

            DomainContext.Initialize(_container.Resolve <IServiceBus>("client"), _container.Resolve <IObjectBuilder>());
        }
Esempio n. 10
0
        static void Main(string[] args)
        {
            using (var session = NHibernateHelper.OpenSession())
            {
                //using (var uow = new NHibernateUnitOfWork())
                //{
                //    var donorRep = new Repository<Donor>(uow.Session);
                //    var donationRep = new Repository<Donation>(uow.Session);

                //    var d = new Donor
                //    {
                //        CreatedOn = DateTime.Now,
                //        Name = "Joe Donor",
                //        Phone = "512-555-1212"
                //    };

                //    var dt = new Donation
                //    {
                //        Donor = d,
                //        Amount = 100.25m,
                //        CreatedOn = DateTime.Now,
                //        DateOfDonation = DateTime.Now
                //    };

                //    donorRep.Add(d);
                //    donationRep.Add(dt);

                //    uow.Commit();
                //}

                // Sample of fetching a row
                using (var uow = new NHibernateUnitOfWork())
                {
                    var donorRep = new Repository <Donor>(uow.Session);
                    var donors   = donorRep.Select(x => x);
                }
            }
        }
Esempio n. 11
0
		public void Flush_Calls_Underlying_ISession_Flush()
		{
			var mockSession = MockRepository.GenerateMock<ISession>();
			mockSession.Expect(x => x.Flush());

			var unitOfWork = new NHibernateUnitOfWork(mockSession);
			unitOfWork.Flush();

			mockSession.VerifyAllExpectations();
		}
Esempio n. 12
0
 public BaseApiController()
 {
     MyUnitOfWork     = (NHibernateUnitOfWork)MathClubTracker.MvcApplication.UnitOfWork;
     MySession        = MyUnitOfWork.Session;
     _identityService = new IdentityService();
 }
Esempio n. 13
0
 public NHibernateRepository(NHibernateUnitOfWork unitOfWork)
 {
     this.unitOfWork = unitOfWork;
     this.session    = unitOfWork.Session;
 }
Esempio n. 14
0
 public ClientRepository()
 {
     session = NHibernateHelper<Client>.OpenSession();
     session.FlushMode = FlushMode.Commit;
     nHibernateUnitOfWork = new NHibernateUnitOfWork(session.BeginTransaction());
 }
Esempio n. 15
0
 public SearchForLibraryModule(NHibernateUnitOfWork unitOfWork, IMessageHandler <SearchForLibrary> messageHandler)
     : base(unitOfWork, messageHandler, "/libraries/{searchstring}")
 {
 }
Esempio n. 16
0
 public AddBookModule(EventStoreUnitOfWork unitOfWork, ICommandHandler <AddBookToLibrary> commandHandler,
                      NHibernateUnitOfWork relationalUnitOfWork, EventDispatcher eventDispatcher)
     : base(unitOfWork, commandHandler, "/libraries/{AggregateId}/books/add", relationalUnitOfWork,
            eventDispatcher)
 {
 }
Esempio n. 17
0
		public void TransactionalFlush_Starts_A_Transaction_With_Specified_IsolationLevel_And_Commits_When_Flush_Succeeds()
		{
			var mockSession = MockRepository.GenerateMock<ISession>();
			var mockTransaction = MockRepository.GenerateMock<ITransaction>();

			mockSession.Expect(x => x.BeginTransaction(IsolationLevel.ReadUncommitted))
				.Return(mockTransaction);
			mockSession.Expect(x => x.Flush());

			mockTransaction.Expect(x => x.Commit());

			var unitOfWork = new NHibernateUnitOfWork(mockSession);
			unitOfWork.Commit(IsolationLevel.ReadUncommitted);

			mockSession.VerifyAllExpectations();
			mockTransaction.VerifyAllExpectations();
		}
Esempio n. 18
0
        public void SetUp()
        {
            UnitOfWork = new NHibernateUnitOfWork(NHibernateSessionProvider.SessionFactory.OpenSession());

            svc = new StudentService(UnitOfWork.Session);
        }
Esempio n. 19
0
 public RemoveBookModule(EventStoreUnitOfWork unitOfWork, ICommandHandler <RemoveBookFromLibrary> commandHandler,
                         NHibernateUnitOfWork relationalUnitOfWork, EventDispatcher eventDispatcher)
     : base(unitOfWork, commandHandler, "/libraries/{AggregateId}/books/remove", relationalUnitOfWork,
            eventDispatcher)
 {
 }
Esempio n. 20
0
 protected GenericNHibernateRepository(NHibernateUnitOfWork unitOfWork)
 {
     UnitOfWork = unitOfWork;
 }
 private void StartNewUnitOfWork()
 {
     unitOfWork     = (NHibernateUnitOfWork)UnitOfWork.Start();
     userRepository = new NHibernateRepository <UserModel, int>(unitOfWork);
 }
 public OrderRepository(ISession session)
 {
     Context = new NHibernateUnitOfWork(session);
 }
Esempio n. 23
0
		public void IsInTransaction_Should_Return_False_When_No_Transaction_Exists()
		{
			var mockSession = MockRepository.GenerateStub<ISession>();
			var unitOfWork = new NHibernateUnitOfWork(mockSession);

			unitOfWork.IsInTransaction.ShouldBeFalse();
		}
Esempio n. 24
0
 public void Throw_If_Session_Is_Null()
 {
     var uow = new NHibernateUnitOfWork(null);
 }
Esempio n. 25
0
		public void TransactionalFlush_Rollsback_Transaction_When_Flush_Throws_Exception()
		{
			var mockSession = MockRepository.GenerateMock<ISession>();
			var mockTransaction = MockRepository.GenerateMock<ITransaction>();


			mockSession.Expect(x => x.BeginTransaction(IsolationLevel.ReadCommitted))
				.Return(mockTransaction);
			mockSession.Expect(x => x.Flush()).Throw(new Exception());

			mockTransaction.Expect(x => x.Rollback());

			var unitOfWork = new NHibernateUnitOfWork(mockSession);
			Assert.Throws<Exception>(() => { unitOfWork.Commit(); });

			mockSession.VerifyAllExpectations();
			mockTransaction.VerifyAllExpectations();
		}
        public void SetUp()
        {
            _nHibernateSessionFactory = MockRepository.GenerateStub<INHibernateSessionFactory>();
            _session = MockRepository.GenerateMock<ISession>();
            _transaction = MockRepository.GenerateStub<ITransaction>();

            _nHibernateSessionFactory.Stub(s => s.CreateSession()).Return(_session);
            _session.Stub(s => s.BeginTransaction()).Return(_transaction);

            _uow = new NHibernateUnitOfWork(_nHibernateSessionFactory);
            _uow.Initialize();
        }
Esempio n. 27
0
		public void TransactionalFlush_Uses_Existing_Transaction_When_Transactional_AlreadyRunning()
		{
			var mockSession = MockRepository.GenerateMock<ISession>();
			var mockTransaction = MockRepository.GenerateMock<ITransaction>();

			mockSession.Expect(x => x.BeginTransaction(IsolationLevel.ReadCommitted))
				.Return(mockTransaction)
				.Repeat.Once(); //Expect BeginTransaction to be called only once.

			var unitOfWork = new NHibernateUnitOfWork(mockSession);
			unitOfWork.BeginTransaction();
			unitOfWork.Commit();

			mockSession.VerifyAllExpectations();
			mockTransaction.VerifyAllExpectations();
		}
Esempio n. 28
0
        public void Teardown()
        {
            NHibernateUnitOfWork.SetSessionProvider(null);

            LocalContext.Current.Clear();
        }
Esempio n. 29
0
 public AcceptLinkModule(EventStoreUnitOfWork unitOfWork, ICommandHandler <AcceptLink> commandHandler,
                         NHibernateUnitOfWork relationalUnitOfWork, EventDispatcher eventDispatcher)
     : base(unitOfWork, commandHandler, "/libraries/{AggregateId}/links/accept/", relationalUnitOfWork,
            eventDispatcher)
 {
 }
 public SomeClass(IConfigurationRoot configuration)
 {
     NHibernateUnitOfWork.Init(Configuration["ConnectionStrings:OracleConnection"]);
 }
Esempio n. 31
0
		public void Dispose_UnitOfWork_Disposed_Underlying_Transaction_And_Session()
		{
			var mockSession = MockRepository.GenerateMock<ISession>();
			var mockTransaction = MockRepository.GenerateMock<ITransaction>();
			mockSession.Expect(x => x.BeginTransaction(IsolationLevel.ReadCommitted))
				.Return(mockTransaction);
			mockTransaction.Expect(x => x.Dispose());
			mockSession.Expect(x => x.Dispose());

			using (var unitOfWork = new NHibernateUnitOfWork(mockSession))
			{
				unitOfWork.BeginTransaction();
			}
			mockSession.VerifyAllExpectations();
			mockTransaction.VerifyAllExpectations();
		}
Esempio n. 32
0
 public SearchForBookModule(NHibernateUnitOfWork unitOfWork, IAuthenticatedQueryHandler <SearchForBook> queryHandler)
     : base(unitOfWork, queryHandler, "/books/{SearchString}")
 {
 }
 private void StartNewUnitOfWork()
 {
     unitOfWork       = (NHibernateUnitOfWork)UnitOfWork.Start();
     qrCodeRepository = new NHibernateRepository <QrCodeModel, string>(unitOfWork);
 }
Esempio n. 34
0
 public ListLibrariesModule(NHibernateUnitOfWork unitOfWork, IAuthenticatedQueryHandler <ListLibraries> messageHandler)
     : base(unitOfWork, messageHandler, "/libraries/")
 {
 }
        public void Valid_course_crud()
        {
            var appsettings = Config.InitConfiguration();

            var unitOfWork = NHibernateUnitOfWork.Create(appsettings.GetSection("Database")["ConnectionSrtring"]);

            var authorId = Guid.NewGuid();
            var courseId = Guid.NewGuid();

            unitOfWork.BeginUnit();

            var authors = unitOfWork.GetAuthorRepository();
            var courses = unitOfWork.GetCourseRepository();

            var author = Author.Create(authorId, "Marcos Harbs", "");
            var course = Course.Create(courseId, "Curso de JS", "Curso básico de desenvolvimento javascript", author);

            var video1 = Video.Create("Video 1", "http://youtube.com/video1");
            var video2 = Video.Create("Video 2", "http://youtube.com/video2");

            course.AddVideo(video1);
            course.AddVideo(video2);

            authors.AddOrUpdate(author);
            courses.AddOrUpdate(course);

            var courseDb = courses.GetById(courseId);

            courseDb.Id.Should().Be(course.Id);
            courseDb.Videos.Count().Should().Be(course.Videos.Count());

            unitOfWork.CommitUnit();
            unitOfWork.BeginUnit();

            authors = unitOfWork.GetAuthorRepository();
            courses = unitOfWork.GetCourseRepository();

            course = courses.GetById(courseId);
            course.RemoveVideos();
            course.AddVideo(Video.Create("Video 3", "http://youtube.com/video1"));

            courses.AddOrUpdate(course);

            courseDb = courses.GetById(courseId);

            courseDb.Id.Should().Be(course.Id);
            courseDb.CourseName.Should().Be(course.CourseName);
            courseDb.Videos.Count().Should().Be(course.Videos.Count());

            var coursesCount = courses.Count();

            coursesCount.Should().Be(1);

            var allCourses     = courses.GetAll();
            var partialCourses = courses.GetPartial(0, 20);

            allCourses.Count.Should().Be(1);
            partialCourses.Count.Should().Be(1);
            allCourses.ToList()[0].Should().Be(courseDb);
            partialCourses.ToList()[0].Should().Be(courseDb);

            unitOfWork.CommitUnit();
            unitOfWork.BeginUnit();

            authors = unitOfWork.GetAuthorRepository();
            courses = unitOfWork.GetCourseRepository();

            courses.Remove(courseDb);
            authors.Remove(author);

            unitOfWork.CommitUnit();
        }
Esempio n. 36
0
 public ListRequestedLinksModule(NHibernateUnitOfWork unitOfWork, IAuthenticatedQueryHandler <ListRequestedLinks> queryHandler)
     : base(unitOfWork, queryHandler, "/libraries/{AggregateId}/links/sent")
 {
 }
Esempio n. 37
0
 public ListLibraryBooksModule(NHibernateUnitOfWork unitOfWork, IAuthenticatedQueryHandler <ListLibraryBooks> queryHandler)
     : base(unitOfWork, queryHandler, "/libraries/{AggregateId}/books/")
 {
 }
Esempio n. 38
0
 public OpenLibraryModule(EventStoreUnitOfWork unitOfWork, ICommandHandler <OpenLibrary> commandHandler,
                          NHibernateUnitOfWork relationalUnitOfWork, EventDispatcher eventDispatcher)
     : base(unitOfWork, commandHandler, "/libraries/", relationalUnitOfWork,
            eventDispatcher)
 {
 }
Esempio n. 39
0
 public BaseODataController()
 {
     MyUnitOfWork = (NHibernateUnitOfWork)MathClubTracker.MvcApplication.UnitOfWork;
     MySession    = MyUnitOfWork.Session;
 }
Esempio n. 40
0
 public void Setup()
 {
     Lifecycle.Current = new IntegrationTestLifecycle();
     _repo             = ObjectContainer.Get <BMRepo>();
     _unitOfWork       = ObjectContainer.Get <NHibernateUnitOfWork>();
 }
 private void StartNewUnitOfWork()
 {
     unitOfWork        = (NHibernateUnitOfWork)UnitOfWork.Start();
     productRepository = new NHibernateRepository <ProductModel, string>(unitOfWork);
 }
 public AuthCallbackProvider(IUserMapper userMapper, NHibernateUnitOfWork unitOfWork, Tokeniser tokeniser)
 {
     this.userMapper = userMapper;
     this.unitOfWork = unitOfWork;
     this.tokeniser  = tokeniser;
 }
 public void SetUp()
 {
     mocks = new MockRepository();
     factory = mocks.DynamicMock<ISessionFactory>();
     session = mocks.DynamicMock<ISession>();
     transaction = mocks.DynamicMock<ITransaction>();
     sessionFactoryFunc = () => factory;
     unitOfWork = mocks.Stub<NHibernateUnitOfWork>(sessionFactoryFunc);
 }
Esempio n. 44
0
 public async Task Invoke(IDictionary <string, object> environment)
 {
     using (IUnitOfWork uow = new NHibernateUnitOfWork(SessionManager <WebSessionContext> .Current))
         await _next.Invoke(environment);
 }