public void References_of_the_persistent_entity_should_also_be_mapped() { var assemblyContainingSagas = typeof(TestSaga).Assembly; var builder = new SessionFactoryBuilder(assemblyContainingSagas.GetTypes()); var sessionFactory = builder.Build(testProperties, false) as SessionFactoryImpl; Assert.NotNull(sessionFactory.GetEntityPersister(typeof(RelatedClass).FullName)); }
public void Database_schema_should_be_updated_if_requested() { var nhibernateProperties = SQLiteConfiguration.Standard .UsingFile(Path.GetTempFileName()) .ProxyFactoryFactory(typeof(ProxyFactoryFactory).AssemblyQualifiedName) .ToProperties(); var sessionFactory = new SessionFactoryBuilder(typeof(TestSaga).Assembly.GetTypes()) .Build(nhibernateProperties, true); using (var session = sessionFactory.OpenSession()) { session.CreateCriteria(typeof(TestSaga)).List<TestSaga>(); } }
public void SetUp() { var assemblyContainingSagas = typeof(TestSaga).Assembly; var builder = new SessionFactoryBuilder(assemblyContainingSagas.GetTypes()); sessionFactory = builder.Build(SQLiteConfiguration.Standard .InMemory() .ProxyFactoryFactory(typeof(ProxyFactoryFactory).AssemblyQualifiedName) .ToProperties(), false) as SessionFactoryImpl; persisterForTestSaga = sessionFactory.GetEntityPersister(typeof(TestSaga).FullName); persisterForTestSaga.ShouldNotBeNull(); }
/// <summary> /// Use the NHibernate backed saga persister implementation. /// SagaData classes are automatically mapped using Fluent NHibernate conventions /// and there persistence schema is automatically generated if requested. /// </summary> /// <param name="config"></param> /// <param name="nhibernateProperties"></param> /// <param name="autoUpdateSchema"></param> /// <returns></returns> public static Configure NHibernateSagaPersister(this Configure config, IDictionary<string,string> nhibernateProperties, bool autoUpdateSchema) { if (!Sagas.Impl.Configure.SagasWereFound) return config; //no sagas - don't need to do anything if (nhibernateProperties == null) throw new InvalidOperationException("No properties configured for NHibernate. Check that you have a configuration section called 'NHibernateSagaPersisterConfig'."); var builder = new SessionFactoryBuilder(Configure.TypesToScan); var sessionFactory = builder.Build(nhibernateProperties, autoUpdateSchema); if (sessionFactory == null) throw new InvalidOperationException("Could not create session factory for saga persistence."); config.Configurer.RegisterSingleton<ISessionFactory>(sessionFactory); config.Configurer.ConfigureComponent<SagaPersister>(ComponentCallModelEnum.Singlecall); return config; }