public void TestSetup()
        {
            this.Setup           = new NhibernateTestSetupHelper();
            this._singleProvider = new ProviderMappingGroup("default", new WildcardUriMatch(new Uri("content://")), this.Setup.ReadonlyProviderSetup, this.Setup.ProviderSetup, this.Setup.FakeFrameworkContext);
            this.HiveManager     = new HiveManager(this._singleProvider, this._singleProvider.FrameworkContext);

            this.AppContext = new FakeRebelApplicationContext(this.HiveManager, false);

            this._resolverContext = new MockedMapResolverContext(this.HiveManager.FrameworkContext, this.HiveManager, new MockedPropertyEditorFactory(this.AppContext), new MockedParameterEditorFactory());

            //mappers
            var cmsModelMapper = new CmsModelMapper(this._resolverContext);
            var persistenceToRenderModelMapper = new RenderTypesModelMapper(this._resolverContext);

            this.Setup.FakeFrameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { cmsModelMapper, persistenceToRenderModelMapper }));

            var membersMembershipProvider = new MembersMembershipProvider {
                AppContext = AppContext
            };

            MembershipService = new MembershipService <Member, MemberProfile>(AppContext.FrameworkContext, HiveManager,
                                                                              "security://member-profiles", "security://member-groups", Framework.Security.Model.FixedHiveIds.MemberProfileVirtualRoot,
                                                                              membersMembershipProvider, Enumerable.Empty <MembershipProviderElement>());

            PublicAccessService = new PublicAccessService(HiveManager, MembershipService, AppContext.FrameworkContext);
        }
Example #2
0
        public void AddOneRemoveOne_EntityDoesntExist()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();

            HiveId id;

            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");
                uow.EntityRepository.Schemas.AddOrUpdate(entity);
                uow.Complete();
                id = entity.Id;
            }

            setup.SessionForTest.Clear();

            //Act

            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                uow.EntityRepository.Schemas.Delete <AttributeType>(id);
                uow.Complete();
            }

            //assert
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.IsNull(uow.EntityRepository.Schemas.Get <AttributeType>(id));
            }
        }
Example #3
0
        public void OnceUnitOfWorkCommitted_RevisionDataStoreUpdated()
        {
            //Arrange
            var    setup = new NhibernateTestSetupHelper();
            HiveId id;
            HiveId revisionId;

            //Act
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                //var entitySchema = HiveModelCreationHelper.MockEntitySchema("blah-alias", "blah-name");
                var entity   = HiveModelCreationHelper.MockTypedEntity(false);
                var revision = new Revision <TypedEntity>(entity);

                writer.EntityRepository.Revisions.AddOrUpdate(revision);
                writer.Complete();

                id         = revision.Item.Id;
                revisionId = revision.MetaData.Id;
                Assert.IsNotNull(writer.EntityRepository.Revisions.Get <TypedEntity>(id, revisionId));
            }

            setup.SessionForTest.Clear();

            //assert
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.AreNotEqual(id, Guid.Empty);
                Assert.IsNotNull(writer.EntityRepository.Revisions.Get <TypedEntity>(id, revisionId));
            }
        }
Example #4
0
 public void TestSetup()
 {
     var testSetup = new NhibernateTestSetupHelper();
     _nhSessionHelper = new NhSessionHelper(testSetup.SessionForTest, testSetup.FakeFrameworkContext);
     _rdbmsTypeMapper = new RdbmsModelMapper(_nhSessionHelper, testSetup.FakeFrameworkContext);
     _rdbmsTypeMapper.ConfigureMappings();
 }
Example #5
0
        public void OnceUnitOfWorkCommitted_SchemaDataStoreUpdated()
        {
            //Arrange
            var    setup = new NhibernateTestSetupHelper();
            HiveId id;

            //Act
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");

                writer.EntityRepository.Schemas.AddOrUpdate(entity);
                writer.Complete();
                id = entity.Id;
                Assert.IsNotNull(writer.EntityRepository.Schemas.Get <AttributeType>(id));
            }

            setup.SessionForTest.Clear();

            //assert
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.IsNotNull(writer.EntityRepository.Schemas.Get <AttributeType>(id));
            }
        }
        public void Setup()
        {
            var helper = new NhibernateTestSetupHelper(new FakeFrameworkContext());

            ProviderSetup         = helper.ProviderSetup;
            ReadonlyProviderSetup = helper.ReadonlyProviderSetup;
        }
        public void DataInstallTest_CoreData_NHibernate()
        {
            //Arrange

            var nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);

            var hiveManager =
                new HiveManager(
                    new[]
            {
                new ProviderMappingGroup(
                    "test",
                    new WildcardUriMatch("content://"),
                    nhibernateTestSetup.ReadonlyProviderSetup,
                    nhibernateTestSetup.ProviderSetup,
                    nhibernateTestSetup.FakeFrameworkContext),
                storageProvider.CreateGroup("uploader", "storage://file-uploader")
            },
                    nhibernateTestSetup.FakeFrameworkContext);

            RunTest(hiveManager, nhibernateTestSetup.FakeFrameworkContext, () =>
            {
                nhibernateTestSetup.SessionForTest.Clear();
                hiveManager.Context.GenerationScopedCache.Clear();
            });

            hiveManager.Dispose();
        }
        public void Setup()
        {
            var helper = new NhibernateTestSetupHelper(new FakeFrameworkContext());

            ProviderSetup = helper.ProviderSetup;
            ReadonlyProviderSetup = helper.ReadonlyProviderSetup;
        }
Example #9
0
        public void IfUnitOfWorkUncomitted_RevisionDataStoreNotUpdated()
        {
            //Arrange
            var    setup = new NhibernateTestSetupHelper();
            HiveId id;
            HiveId revisionId;

            //act
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity   = HiveModelCreationHelper.MockTypedEntity(false);
                var revision = new Revision <TypedEntity>(entity);

                uow.EntityRepository.Revisions.AddOrUpdate(revision);

                id         = revision.Item.Id;
                revisionId = revision.MetaData.Id;
            }

            setup.SessionForTest.Clear();

            //assert
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.AreNotEqual(id, HiveId.Empty);
                Assert.AreNotEqual(revisionId, HiveId.Empty);
                Assert.IsNull(uow.EntityRepository.Revisions.Get <TypedEntity>(id, revisionId));
            }
        }
Example #10
0
        public void TestSetup()
        {
            var testSetup = new NhibernateTestSetupHelper();

            _nhSessionHelper = new NhSessionHelper(testSetup.SessionForTest, testSetup.FakeFrameworkContext);
            _rdbmsTypeMapper = new RdbmsModelMapper(_nhSessionHelper, testSetup.FakeFrameworkContext);
            _rdbmsTypeMapper.ConfigureMappings();
        }
Example #11
0
        public void OnceUnitOpened_TransactionPropertyIsPopulated()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();

            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                dynamic access = new AccessPrivateWrapper(writer.EntityRepository.Transaction);
                Assert.NotNull(access._nhTransaction);
            }
        }
Example #12
0
        public void GetWithNullId_ResultsInArgumentNullException()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();

            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                //Assert
                Assert.Throws <ArgumentNullException>(() => writer.EntityRepository.Get <TypedEntity>(HiveId.Empty));
            }
        }
 public void BeforeTest()
 {
     SetupHelper = new NhibernateTestSetupHelper(useNhProf: true);
     //SetupHelper = new NhibernateTestSetupHelper(useNhProf:true);
     //SetupHelper = new NhibernateTestSetupHelper(@"Data Source=c:\temp\test.s3db;Version=3;",
     //                                        SupportedNHDrivers.SqlLite,
     //                                        "call",
     //                                        true,
     //                                        useNhProf: true);
     //SetupHelper = new NhibernateTestSetupHelper(@"data source=.\sqlexpress2008;initial catalog=v5units;user id=rebel;password=rebel", SupportedNHDrivers.MsSql2008, "call", true, useNhProf: true);
     //SetupHelper = new NhibernateTestSetupHelper(@"data source=C:\Users\Alex\Documents\My Web Sites\Rebel.Cms.Web.UI-Site\App_Data\Test2.sdf", SupportedNHDrivers.MsSqlCe4, "call", true, useNhProf: true);
 }
 public void BeforeTest()
 {
     SetupHelper = new NhibernateTestSetupHelper(useNhProf:true);
     //SetupHelper = new NhibernateTestSetupHelper(useNhProf:true);            
     //SetupHelper = new NhibernateTestSetupHelper(@"Data Source=c:\temp\test.s3db;Version=3;",
     //                                        SupportedNHDrivers.SqlLite,
     //                                        "call",
     //                                        true,
     //                                        useNhProf: true);
     //SetupHelper = new NhibernateTestSetupHelper(@"data source=.\sqlexpress2008;initial catalog=v5units;user id=rebel;password=rebel", SupportedNHDrivers.MsSql2008, "call", true, useNhProf: true);
     //SetupHelper = new NhibernateTestSetupHelper(@"data source=C:\Users\Alex\Documents\My Web Sites\Rebel.Cms.Web.UI-Site\App_Data\Test2.sdf", SupportedNHDrivers.MsSqlCe4, "call", true, useNhProf: true);
 }
 protected void TestSetup()
 {
     _helper = new NhibernateTestSetupHelper();
     //_helper = new NhibernateTestSetupHelper(useNhProf:true);
     //_helper = new NhibernateTestSetupHelper(@"Data Source=c:\temp\test.s3db;Version=3;",
     //                                        SupportedNHDrivers.SqlLite,
     //                                        "call",
     //                                        true,
     //                                        useNhProf: true);
     //_helper = new NhibernateTestSetupHelper(@"data source=.\sqlexpress2008;initial catalog=v5units;user id=rebel;password=rebel", SupportedNHDrivers.MsSql2008, "call", true, useNhProf: true);
     //_helper = new NhibernateTestSetupHelper(@"data source=C:\Users\Alex\Documents\My Web Sites\Rebel.Cms.Web.UI-Site\App_Data\Test2.sdf", SupportedNHDrivers.MsSqlCe4, "call", true, useNhProf: true);
     _groupUnitFactory = new GroupUnitFactory(_helper.ProviderSetup, new Uri("content://"), FakeHiveCmsManager.CreateFakeRepositoryContext(_helper.FakeFrameworkContext));
 }
        private ProviderMappingGroup CreateFakeDictionaryMappingGroup(FakeFrameworkContext frameworkContext)
        {
            var helper = new NhibernateTestSetupHelper(frameworkContext, useNhProf:true);
            var uriMatch = new WildcardUriMatch(new Uri("dictionary://"));
            var persistenceMappingGroup = new ProviderMappingGroup(
                "dictionary",
                uriMatch,
                helper.ReadonlyProviderSetup,
                helper.ProviderSetup,
                frameworkContext);

            return persistenceMappingGroup;
        }
Example #17
0
 protected void TestSetup()
 {
     _helper = new NhibernateTestSetupHelper();
     //_helper = new NhibernateTestSetupHelper(useNhProf:true);
     //_helper = new NhibernateTestSetupHelper(@"Data Source=c:\temp\test.s3db;Version=3;",
     //                                        SupportedNHDrivers.SqlLite,
     //                                        "call",
     //                                        true,
     //                                        useNhProf: true);
     //_helper = new NhibernateTestSetupHelper(@"data source=.\sqlexpress2008;initial catalog=v5units;user id=rebel;password=rebel", SupportedNHDrivers.MsSql2008, "call", true, useNhProf: true);
     //_helper = new NhibernateTestSetupHelper(@"data source=C:\Users\Alex\Documents\My Web Sites\Rebel.Cms.Web.UI-Site\App_Data\Test2.sdf", SupportedNHDrivers.MsSqlCe4, "call", true, useNhProf: true);
     _groupUnitFactory = new GroupUnitFactory(_helper.ProviderSetup, new Uri("content://"), FakeHiveCmsManager.CreateFakeRepositoryContext(_helper.FakeFrameworkContext));
 }
Example #18
0
        public void TestSetup()
        {
            this.Setup           = new NhibernateTestSetupHelper();
            this._singleProvider = new ProviderMappingGroup("default", new WildcardUriMatch(new Uri("content://")), this.Setup.ReadonlyProviderSetup, this.Setup.ProviderSetup, this.Setup.FakeFrameworkContext);
            this.HiveManager     = new HiveManager(this._singleProvider, this._singleProvider.FrameworkContext);

            this._appContext = new FakeUmbracoApplicationContext(this.HiveManager, false);

            this._resolverContext = new MockedMapResolverContext(this.HiveManager.FrameworkContext, this.HiveManager, new MockedPropertyEditorFactory(this._appContext), new MockedParameterEditorFactory());

            //mappers
            var cmsModelMapper = new CmsModelMapper(this._resolverContext);
            var persistenceToRenderModelMapper = new RenderTypesModelMapper(this._resolverContext);

            this.Setup.FakeFrameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { cmsModelMapper, persistenceToRenderModelMapper }));
        }
Example #19
0
        public void Setup()
        {
            _nhibernateTestSetup = new NhibernateTestSetupHelper();

            Hive = new HiveManager(
                new[]
            {
                new ProviderMappingGroup(
                    "test",
                    new WildcardUriMatch("content://"),
                    _nhibernateTestSetup.ReadonlyProviderSetup,
                    _nhibernateTestSetup.ProviderSetup,
                    _nhibernateTestSetup.FakeFrameworkContext)
            },
                _nhibernateTestSetup.FakeFrameworkContext);
        }
Example #20
0
        public void OnceDisposed_ExceptionsThrown()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();

            //Act
            var uow = setup.ProviderSetup.UnitFactory.Create();

            uow.Dispose();

            var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");

            Assert.Throws <ObjectDisposedException>(() => { var accessorTest = uow.EntityRepository; });
            Assert.Throws <ObjectDisposedException>(() => { var accessorTest = uow.EntityRepository.Revisions; });
            Assert.Throws <ObjectDisposedException>(() => { var accessorTest = uow.EntityRepository.Schemas; });
            Assert.Throws <ObjectDisposedException>(() => { var accessorTest = uow.EntityRepository.Schemas.Revisions; });
            Assert.Throws <ObjectDisposedException>(() => uow.EntityRepository.Schemas.AddOrUpdate(entity));
        }
Example #21
0
        public void BeforeTest()
        {
            _nhibernateTestSetup = new NhibernateTestSetupHelper(useNhProf: true);

            var storageProvider = new IoHiveTestSetupHelper(_nhibernateTestSetup.FakeFrameworkContext);


            Hive =
                new HiveManager(
                    new[]
            {
                new ProviderMappingGroup(
                    "test1",
                    new WildcardUriMatch("content://"),
                    _nhibernateTestSetup.ReadonlyProviderSetup,
                    _nhibernateTestSetup.ProviderSetup,
                    _nhibernateTestSetup.FakeFrameworkContext),

                new ProviderMappingGroup(
                    "test2",
                    new WildcardUriMatch("security://members"),
                    _nhibernateTestSetup.ReadonlyProviderSetup,
                    _nhibernateTestSetup.ProviderSetup,
                    _nhibernateTestSetup.FakeFrameworkContext),
                storageProvider.CreateGroup("uploader", "storage://")
            },
                    _nhibernateTestSetup.FakeFrameworkContext);

            var appContext = new FakeRebelApplicationContext(Hive, true);

            AttributeTypeRegistry.SetCurrent(new CmsAttributeTypeRegistry());

            var task = new EnsureCoreDataTask(Hive.FrameworkContext,
                                              Hive,
                                              Enumerable.Empty <Lazy <Permission, PermissionMetadata> >(),
                                              null);

            task.InstallOrUpgrade();

            Provider = new MembersMembershipProvider(Hive, appContext);
            Provider.Initialize("MembersMembershipProvider", new NameValueCollection());
        }
Example #22
0
        public void Setup()
        {
            _nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(_nhibernateTestSetup.FakeFrameworkContext);

            Hive = new HiveManager(
                new[]
            {
                new ProviderMappingGroup(
                    "test",
                    new WildcardUriMatch("content://"),
                    _nhibernateTestSetup.ReadonlyProviderSetup,
                    _nhibernateTestSetup.ProviderSetup,
                    _nhibernateTestSetup.FakeFrameworkContext),
                storageProvider.CreateGroup("uploader", "storage://file-uploader"),
            },
                _nhibernateTestSetup.FakeFrameworkContext);

            var appContext = new FakeRebelApplicationContext(Hive, false);

            var resolverContext   = new MockedMapResolverContext(_nhibernateTestSetup.FakeFrameworkContext, Hive, new MockedPropertyEditorFactory(appContext), new MockedParameterEditorFactory());
            var webmModelMapper   = new CmsModelMapper(resolverContext);
            var renderModelMapper = new RenderTypesModelMapper(resolverContext);

            _nhibernateTestSetup.FakeFrameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { webmModelMapper, renderModelMapper, new FrameworkModelMapper(_nhibernateTestSetup.FakeFrameworkContext) }));

            var membersMembershipProvider = new MembersMembershipProvider {
                AppContext = appContext
            };

            membersMembershipProvider.Initialize("MembersMembershipProvider", new NameValueCollection());
            MembershipService = new MembershipService <Member, MemberProfile>(appContext.FrameworkContext, Hive,
                                                                              "security://member-profiles", "security://member-groups", Framework.Security.Model.FixedHiveIds.MemberProfileVirtualRoot,
                                                                              membersMembershipProvider, Enumerable.Empty <MembershipProviderElement>());

            PublicAccessService = new PublicAccessService(Hive, MembershipService, appContext.FrameworkContext);

            var serializer = new ServiceStackSerialiser();

            SerializationService = new SerializationService(serializer);
        }
        public void BeforeTest()
        {
            _nhibernateTestSetup = new NhibernateTestSetupHelper(useNhProf:true);

            var storageProvider = new IoHiveTestSetupHelper(_nhibernateTestSetup.FakeFrameworkContext);


            Hive =
                new HiveManager(
                    new[]
                        {
                            new ProviderMappingGroup(
                                "test1",
                                new WildcardUriMatch("content://"),
                                _nhibernateTestSetup.ReadonlyProviderSetup,
                                _nhibernateTestSetup.ProviderSetup,
                                _nhibernateTestSetup.FakeFrameworkContext),

                            new ProviderMappingGroup(
                                "test2",
                                new WildcardUriMatch("security://members"),
                                _nhibernateTestSetup.ReadonlyProviderSetup,
                                _nhibernateTestSetup.ProviderSetup,
                                _nhibernateTestSetup.FakeFrameworkContext),
                                storageProvider.CreateGroup("uploader", "storage://")
                        },
                    _nhibernateTestSetup.FakeFrameworkContext);

            var appContext = new FakeRebelApplicationContext(Hive, true);

            AttributeTypeRegistry.SetCurrent(new CmsAttributeTypeRegistry());

            var task = new EnsureCoreDataTask(Hive.FrameworkContext,
                                              Hive,
                                              Enumerable.Empty<Lazy<Permission, PermissionMetadata>>(),
                                              null);
            task.InstallOrUpgrade();

            Provider = new MembersMembershipProvider(Hive, appContext);
            Provider.Initialize("MembersMembershipProvider", new NameValueCollection());
        }
Example #24
0
        public void Setup()
        {
            _nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(_nhibernateTestSetup.FakeFrameworkContext);

            Hive = new HiveManager(
                    new[]
                        {
                            new ProviderMappingGroup(
                                "test",
                                new WildcardUriMatch("content://"),
                                _nhibernateTestSetup.ReadonlyProviderSetup,
                                _nhibernateTestSetup.ProviderSetup,
                                _nhibernateTestSetup.FakeFrameworkContext),
                            storageProvider.CreateGroup("uploader", "storage://file-uploader"),
                        },
                    _nhibernateTestSetup.FakeFrameworkContext);

            var appContext = new FakeRebelApplicationContext(Hive, false);

            var resolverContext = new MockedMapResolverContext(_nhibernateTestSetup.FakeFrameworkContext, Hive, new MockedPropertyEditorFactory(appContext), new MockedParameterEditorFactory());
            var webmModelMapper = new CmsModelMapper(resolverContext);
            var renderModelMapper = new RenderTypesModelMapper(resolverContext);

            _nhibernateTestSetup.FakeFrameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { webmModelMapper, renderModelMapper, new FrameworkModelMapper(_nhibernateTestSetup.FakeFrameworkContext) }));

            var membersMembershipProvider = new MembersMembershipProvider { AppContext = appContext };
            membersMembershipProvider.Initialize("MembersMembershipProvider", new NameValueCollection());
            MembershipService = new MembershipService<Member, MemberProfile>(appContext.FrameworkContext, Hive,
                "security://member-profiles", "security://member-groups", Framework.Security.Model.FixedHiveIds.MemberProfileVirtualRoot,
                membersMembershipProvider, Enumerable.Empty<MembershipProviderElement>());

            PublicAccessService = new PublicAccessService(Hive, MembershipService, appContext.FrameworkContext);

            var serializer = new ServiceStackSerialiser();
            SerializationService = new SerializationService(serializer);
        }
Example #25
0
        private static HiveManager GetHiveForTest()
        {
            var nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);


            var hive =
                new HiveManager(
                    new[]
            {
                new ProviderMappingGroup(
                    "test",
                    new WildcardUriMatch("content://"),
                    nhibernateTestSetup.ReadonlyProviderSetup,
                    nhibernateTestSetup.ProviderSetup,
                    nhibernateTestSetup.FakeFrameworkContext),
                storageProvider.CreateGroup("uploader", "storage://")
            },
                    nhibernateTestSetup.FakeFrameworkContext);

            return(hive);
        }
        public void TestSetup()
        {
            this.Setup = new NhibernateTestSetupHelper();
            this._singleProvider = new ProviderMappingGroup("default", new WildcardUriMatch(new Uri("content://")), this.Setup.ReadonlyProviderSetup, this.Setup.ProviderSetup, this.Setup.FakeFrameworkContext);
            this.HiveManager = new HiveManager(this._singleProvider, this._singleProvider.FrameworkContext);

            this.AppContext = new FakeRebelApplicationContext(this.HiveManager, false);

            this._resolverContext = new MockedMapResolverContext(this.HiveManager.FrameworkContext, this.HiveManager, new MockedPropertyEditorFactory(this.AppContext), new MockedParameterEditorFactory());

            //mappers
            var cmsModelMapper = new CmsModelMapper(this._resolverContext);
            var persistenceToRenderModelMapper = new RenderTypesModelMapper(this._resolverContext);
            
            this.Setup.FakeFrameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { cmsModelMapper, persistenceToRenderModelMapper }));

            var membersMembershipProvider = new MembersMembershipProvider { AppContext = AppContext };
            MembershipService = new MembershipService<Member, MemberProfile>(AppContext.FrameworkContext, HiveManager,
                "security://member-profiles", "security://member-groups", Framework.Security.Model.FixedHiveIds.MemberProfileVirtualRoot,
                membersMembershipProvider, Enumerable.Empty<MembershipProviderElement>());

            PublicAccessService = new PublicAccessService(HiveManager, MembershipService, AppContext.FrameworkContext);
        }
Example #27
0
        public void IfUnitOfWorkUncomitted_SchemaDataStoreNotUpdated()
        {
            //Arrange
            var    setup = new NhibernateTestSetupHelper();
            HiveId id;

            //act
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                var entitySchema = HiveModelCreationHelper.MockEntitySchema("blah-alias", "blah-name");
                uow.EntityRepository.Schemas.AddOrUpdate(entitySchema);
                id = entitySchema.Id;
                Assert.IsNotNull(uow.EntityRepository.Schemas.Get <EntitySchema>(id));
            }

            setup.SessionForTest.Clear();

            //assert
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.AreNotEqual(id, HiveId.Empty);
                Assert.IsNull(uow.EntityRepository.Schemas.Get <EntitySchema>(id));
            }
        }
Example #28
0
        public void IfUnitOfWorkUncomitted_EntityDataStoreNotUpdated()
        {
            //Arrange
            var    setup = new NhibernateTestSetupHelper();
            HiveId id;

            //act
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity = HiveModelCreationHelper.MockTypedEntity(false);
                uow.EntityRepository.AddOrUpdate(entity);
                id = entity.Id;
                Assert.IsNotNull(uow.EntityRepository.Get <TypedEntity>(id));
            }

            setup.SessionForTest.Clear();

            //assert
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.AreNotEqual(id, HiveId.Empty);
                Assert.IsNull(uow.EntityRepository.Get <TypedEntity>(id));
            }
        }
Example #29
0
        public void UnitTestCtor_SessionSurvivesUnits()
        {
            // Arrange
            var  setup = new NhibernateTestSetupHelper();
            Guid entitySessionId;
            Guid revisionSessionId;
            Guid schemaSessionId;

            // Act
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                dynamic entitySession   = new AccessPrivateWrapper(((EntityRepository)writer.EntityRepository).Helper.NhSession);
                dynamic schemaSession   = new AccessPrivateWrapper(((SchemaRepository)writer.EntityRepository.Schemas).Helper.NhSession);
                dynamic revisionSession = new AccessPrivateWrapper(((RevisionRepository)writer.EntityRepository.Revisions).Helper.NhSession);
                entitySessionId   = entitySession.SessionId;
                schemaSessionId   = schemaSession.SessionId;
                revisionSessionId = revisionSession.SessionId;
            }

            // Assert
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                dynamic entitySession   = new AccessPrivateWrapper(((EntityRepository)writer.EntityRepository).Helper.NhSession);
                dynamic schemaSession   = new AccessPrivateWrapper(((SchemaRepository)writer.EntityRepository.Schemas).Helper.NhSession);
                dynamic revisionSession = new AccessPrivateWrapper(((RevisionRepository)writer.EntityRepository.Revisions).Helper.NhSession);

                Assert.AreNotEqual(entitySession.SessionId, Guid.Empty);
                Assert.AreNotEqual(schemaSession.SessionId, Guid.Empty);
                Assert.AreNotEqual(revisionSession.SessionId, Guid.Empty);
                Assert.AreEqual(entitySessionId, entitySession.SessionId);
                Assert.AreEqual(schemaSessionId, entitySession.SessionId);
                Assert.AreEqual(revisionSessionId, entitySession.SessionId);
                Assert.AreEqual(entitySession.SessionId, schemaSession.SessionId);
                Assert.AreEqual(entitySession.SessionId, revisionSession.SessionId);
            }
        }
        public void WhenAddingNodeVersionToSession_ThenClearingAndResettingAttributesCollection_BeforeCommitting_AttributesCollectionIsCorrect()
        {
            var setup = new NhibernateTestSetupHelper();
            var node  = new Node()
            {
                IsDisabled = false
            };

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                node = setup.SessionForTest.Merge(node) as Node;
                tran.Commit();
            }
            setup.SessionForTest.Clear();

            NodeVersion nodeVersion = null;

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                // Get the node from the cleared session to mimic what the NH revision repository is doing
                node = setup.SessionForTest.Get <Node>(node.Id);

                var currentNodeId = node.Id;
                Assert.That(currentNodeId, Is.Not.EqualTo(Guid.Empty));

                var schema = new AttributeSchemaDefinition {
                    Alias = "tes1", SchemaType = "content"
                };
                var type = new AttributeType {
                    Alias = "type1"
                };
                var def = new AttributeDefinition
                {
                    Alias = "def1", AttributeDefinitionGroup = new AttributeDefinitionGroup {
                        Alias = "group1", AttributeSchemaDefinition = schema
                    }, AttributeSchemaDefinition = schema, AttributeType = type
                };
                schema.AttributeDefinitions.Add(def);
                nodeVersion = new NodeVersion {
                    DefaultName = "test", Node = node, AttributeSchemaDefinition = schema
                };
                nodeVersion.Attributes.Add(new Attribute {
                    AttributeDefinition = def, NodeVersion = nodeVersion
                });
                nodeVersion.Node = node;

                // Merge the version into the session, which will add it to 1st-level cache but we haven't committed to db yet
                nodeVersion = setup.SessionForTest.Merge(nodeVersion) as NodeVersion;

                var persister = setup.SessionForTest.GetSessionImplementation().PersistenceContext;

                nodeVersion.Attributes.Clear();
                nodeVersion.Attributes.Add(new Attribute {
                    AttributeDefinition = def, NodeVersion = nodeVersion
                });

                nodeVersion = setup.SessionForTest.Merge(nodeVersion) as NodeVersion;

                node.NodeVersions.Add(nodeVersion);

                setup.SessionForTest.Merge(node);

                tran.Commit();
            }
            setup.SessionForTest.Clear();

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                var reloadVersion = setup.SessionForTest.Get <NodeVersion>(nodeVersion.Id);
                reloadVersion.Attributes.Clear();
                setup.SessionForTest.Merge(reloadVersion);
                tran.Commit();
            }

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                var reloadVersion = setup.SessionForTest.Get <NodeVersion>(nodeVersion.Id);
                Assert.That(reloadVersion.Attributes.Count, Is.EqualTo(1));
            }
        }
Example #31
0
 public void BeforeTest()
 {
     SetupHelper = new NhibernateTestSetupHelper();
 }
        public void Integration_WhenEntityIsAdded_EnsureUniqueNameTask_RenamesItemIfNotUnique()
        {
            IHiveManager hive = null;

            try
            {
                var nhibernateTestSetup = new NhibernateTestSetupHelper(useNhProf: true);

                var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);

                hive = new HiveManager(
                    new[]
                {
                    new ProviderMappingGroup(
                        "test",
                        new WildcardUriMatch("content://"),
                        nhibernateTestSetup.ReadonlyProviderSetup,
                        nhibernateTestSetup.ProviderSetup,
                        nhibernateTestSetup.FakeFrameworkContext),
                    storageProvider.CreateGroup("uploader", "storage://file-uploader"),
                },
                    nhibernateTestSetup.FakeFrameworkContext);


                SetupContentTest(hive);

                hive.FrameworkContext.TaskManager.AddTask(TaskTriggers.Hive.Revisions.PreAddOrUpdateOnUnitComplete,
                                                          () => new EnsureUniqueNameTask(hive.FrameworkContext),
                                                          true);

                hive.Cms().NewContentType("test-for-dupes")
                .Define("sometext", "singleLineTextBox", "tab1")
                .Commit();

                var parent = hive.Cms().NewRevision("My site root", "root", "test-for-dupes")
                             .SetValue("sometext", "hallow")
                             .Publish()
                             .Commit();

                var firstItem = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                                .SetValue("sometext", "hallow")
                                .SetParent(parent.Item)
                                .Publish()
                                .Commit();

                var firstUnDupedItem = hive.Cms().NewRevision("My Name Unpublished", "my-name-unpublished", "test-for-dupes")
                                       .SetValue("sometext", "hallow")
                                       .SetParent(parent.Item)
                                       .Publish()
                                       .Commit();

                var shouldBeModified = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                                       .SetValue("sometext", "hallow")
                                       .SetParent(parent.Item)
                                       .Publish()
                                       .Commit();

                var shouldBeModified2 = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                                        .SetValue("sometext", "hallow")
                                        .SetParent(parent.Item)
                                        .Publish()
                                        .Commit();

                Assert.That(shouldBeModified.Success, Is.True);
                Assert.That(firstItem.Item.Id, Is.Not.EqualTo(shouldBeModified.Item.Id));
                Assert.That(firstItem.Item.Id, Is.Not.EqualTo(shouldBeModified2.Item.Id));
                Assert.That(shouldBeModified.Item.Id, Is.Not.EqualTo(shouldBeModified2.Item.Id));

                hive.Context.GenerationScopedCache.Clear();

                var queryForName = hive.Cms().QueryContent().Where(x => x.InnerAttribute <string>(NodeNameAttributeDefinition.AliasValue, "Name") == "My Name").ToList();
                Assert.That(queryForName.Count, Is.EqualTo(1));

                hive.Context.GenerationScopedCache.Clear();

                using (var uow = hive.OpenReader <IContentStore>())
                {
                    var checkFirstItem    = uow.Repositories.Get(firstItem.Item.Id);
                    var checkRenamedItem  = uow.Repositories.Get(shouldBeModified.Item.Id);
                    var checkRenamedItem2 = uow.Repositories.Get(shouldBeModified2.Item.Id);

                    var firstItemName         = checkFirstItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];
                    var checkRenamedItemName  = checkRenamedItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];
                    var checkRenamedItemName2 = checkRenamedItem2.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];

                    Assert.That(firstItemName, Is.Not.EqualTo(checkRenamedItemName));
                    Assert.That(firstItemName, Is.Not.EqualTo(checkRenamedItemName2));
                    Assert.That(checkRenamedItemName, Is.Not.EqualTo(checkRenamedItemName2));
                    Assert.That(checkRenamedItemName, Is.EqualTo("My Name (1)"));
                    Assert.That(checkRenamedItemName2, Is.EqualTo("My Name (2)"));

                    var firstItemUrlName         = checkFirstItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];
                    var checkRenamedItemUrlName  = checkRenamedItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];
                    var checkRenamedItemUrlName2 = checkRenamedItem2.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];

                    Assert.That(firstItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName));
                    Assert.That(firstItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName2));
                    Assert.That(checkRenamedItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName2));
                    Assert.That(checkRenamedItemUrlName, Is.EqualTo("my-name-1"));
                    Assert.That(checkRenamedItemUrlName2, Is.EqualTo("my-name-2"));
                }
            }
            finally
            {
                hive.IfNotNull(x => x.Dispose());
            }
        }
        public void WhenEntityIsAdded_PreAddOrUpdateBeforeUnitComplete_TaskChangesItem_ItemIsSavedWithNewValues()
        {
            // Arrange
            var nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);

            var hive = new HiveManager(
                new[]
            {
                new ProviderMappingGroup(
                    "test",
                    new WildcardUriMatch("content://"),
                    nhibernateTestSetup.ReadonlyProviderSetup,
                    nhibernateTestSetup.ProviderSetup,
                    nhibernateTestSetup.FakeFrameworkContext),
                storageProvider.CreateGroup("uploader", "storage://file-uploader"),
            },
                nhibernateTestSetup.FakeFrameworkContext);

            var eventMock = Substitute.For <AbstractTask>(hive.FrameworkContext);

            eventMock.When(x => x.Execute(Arg.Any <TaskExecutionContext>()))
            .Do(x =>
            {
                var context = x.Args()[0] as TaskExecutionContext;
                if (context != null)
                {
                    var uow  = context.EventSource as IGroupUnit <IProviderTypeFilter>;
                    var args = context.EventArgs.CallerEventArgs as HiveEntityPreActionEventArgs;
                    if (uow != null && args != null)
                    {
                        var item = args.Entity as TypedEntity;
                        if (item != null &&
                            item.Attributes.Any(
                                y => y.AttributeDefinition.Alias == NodeNameAttributeDefinition.AliasValue))
                        {
                            item.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"] = "Something else";

                            uow.Repositories.AddOrUpdate(item);
                        }
                    }
                }
            });

            // Act
            hive.FrameworkContext.TaskManager.AddTask(TaskTriggers.Hive.PreAddOrUpdateOnUnitComplete, () => eventMock, true);

            var id = HiveId.Empty;

            using (var uow = hive.OpenWriter <IContentStore>())
            {
                var anything = HiveModelCreationHelper.MockTypedEntity();

                // Cause the task to be fired
                uow.Repositories.AddOrUpdate(anything);
                uow.Complete();

                id = anything.Id;
            }

            using (var uow = hive.OpenWriter <IContentStore>())
            {
                // Cause the task to be fired
                var getItem = uow.Repositories.Get(id); // Store is mocked

                Assert.NotNull(getItem);

                // Assert the task has been fired
                Assert.AreEqual("Something else", getItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"]);
            }
        }
Example #34
0
        public void AddOneRemoveOne_EntityDoesntExist()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();

            HiveId id;
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");
                uow.EntityRepository.Schemas.AddOrUpdate(entity);
                uow.Complete();
                id = entity.Id;
            }

            setup.SessionForTest.Clear();

            //Act

            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                uow.EntityRepository.Schemas.Delete<AttributeType>(id);
                uow.Complete();
            }

            //assert
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.IsNull(uow.EntityRepository.Schemas.Get<AttributeType>(id));
            }
        }
Example #35
0
        public void Setup()
        {
            // Setup Hive
            _nhibernateTestSetup = new NhibernateTestSetupHelper(useNhProf: true);

            var storageProvider = new IoHiveTestSetupHelper(_nhibernateTestSetup.FakeFrameworkContext);

            Hive =
                new HiveManager(
                    new[]
            {
                new ProviderMappingGroup(
                    "test",
                    new WildcardUriMatch("content://"),
                    _nhibernateTestSetup.ReadonlyProviderSetup,
                    _nhibernateTestSetup.ProviderSetup,
                    _nhibernateTestSetup.FakeFrameworkContext),
                storageProvider.CreateGroup("uploader", "storage://")
            },
                    _nhibernateTestSetup.FakeFrameworkContext);

            // Setup Schemas
            Hive.Cms()
            .UsingStore <IContentStore>()
            .NewSchema("homepageSchema")
            .Define(NodeNameAttributeDefinition.AliasValue, NodeNameAttributeType.AliasValue, "tab1")
            .Define(SelectedTemplateAttributeDefinition.AliasValue, SelectedTemplateAttributeType.AliasValue, "tab1")
            .Define("siteName", "system-string-type", "tab1")
            .Define("siteDescription", "system-string-type", "tab1")
            .Define("bodyText", "system-long-string-type", "tab2")
            .Commit();

            Hive.Cms()
            .UsingStore <IContentStore>()
            .NewSchema("textpageSchema")
            .Define(NodeNameAttributeDefinition.AliasValue, NodeNameAttributeType.AliasValue, "tab1")
            .Define(SelectedTemplateAttributeDefinition.AliasValue, SelectedTemplateAttributeType.AliasValue, "tab1")
            .Define("bodyText", "system-long-string-type", "tab1")
            .Commit();

            Hive.Cms()
            .UsingStore <IContentStore>()
            .NewSchema("complexpageSchema")
            .Define(NodeNameAttributeDefinition.AliasValue, NodeNameAttributeType.AliasValue, "tab1")
            .Define(SelectedTemplateAttributeDefinition.AliasValue, SelectedTemplateAttributeType.AliasValue, "tab1")
            .Define("color", "system-string-type", "tab1")
            .Define("integer", "system-integer-type", "tab1")
            .Define("date", "system-date-time-type", "tab1")
            .Define("bodyText", "system-long-string-type", "tab1")
            .Commit();

            // Setup Content with a specific DateTime
            _fixedDate = DateTime.Now.Subtract(TimeSpan.FromMinutes(5));
            _homePage  = Hive.Cms().NewRevision("Home", "home", "homepageSchema")
                         .SetSelectedTemplate(new HiveId("storage", "templates", new HiveIdValue("/homepageTemplate.cshtml")))
                         .SetValue("siteName", "Test Site Name")
                         .SetValue("siteDescription", "Test Site Description")
                         .SetValue("bodyText", "<p>Test Site Body Text</p>")
                         .Publish();

            _homePage.Revision.Item.UtcCreated           = _fixedDate;
            _homePage.Revision.MetaData.UtcStatusChanged = _fixedDate;
            _homePage.Commit();

            for (var i = 0; i < 5; i++)
            {
                // Create child
                var child = Hive.Cms().NewRevision("Child" + i, "child-" + i, "textpageSchema")
                            .SetSelectedTemplate(new HiveId("storage", "templates", new HiveIdValue("/textpageTemplate.cshtml")))
                            .SetParent(_homePage.Item)
                            .SetValue("bodyText",
                                      "<p>Child Content " + i + " Revision 1 " + Guid.NewGuid().ToString() + " " +
                                      Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " +
                                      Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                            .Publish()
                            .Commit();

                // Create revisions
                //for (var j = 0; j < i; j++)
                //{
                //    Hive.Cms().NewRevisionOf(child.Item)
                //        .SetValue("bodyText", "<p>Child Content " + i + " Revision " + (j + 2) + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                //        .Publish()
                //        .Commit();

                //}

                //if (i < 3)
                //{
                //    for (var j = 0; j < 6; j++)
                //    {
                //        // Create grand child
                //        var grandChild = Hive.Cms().NewRevision("Grand Child" + j, "grand-child-" + j, "textpageSchema")
                //            .SetParent(child.Item)
                //            .SetValue("bodyText", "<p>Grand Child Content " + j + " Revision 1 " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                //            .Publish()
                //            .Commit();

                //        // Create revisions
                //        for (var k = 0; k < j; k++)
                //        {
                //            Hive.Cms().NewRevisionOf(grandChild.Item)
                //                .SetValue("bodyText", "<p>Grand Child Content " + j + " Revision " + (k + 2) + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                //                .Publish()
                //                .Commit();

                //        }

                //        if (j < 2)
                //        {
                //            // Create great grand children
                //            for (var k = 0; k < 10; k++)
                //            {
                //                var greatGrandChild =
                //                    Hive.Cms().NewRevision("Great Grand Child" + k, "great-grand-child-" + k,
                //                                           "complexpageSchema")
                //                        .SetParent(grandChild.Item)
                //                        .SetValue("color", "#0000" + k.ToString() + k.ToString())
                //                        .SetValue("integer", k)
                //                        .SetValue("date", DateTimeOffset.Now.AddDays(k))
                //                        .SetValue("bodyText",
                //                                  "<p>Great Grand Child Content " + k + " Revision 1 " +
                //                                  Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " +
                //                                  Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " +
                //                                  Guid.NewGuid().ToString() + " the end.</p>")
                //                        .Publish()
                //                        .Commit();

                //                // Create revisions
                //                for (var l = 0; l < k; l++)
                //                {
                //                    Hive.Cms().NewRevisionOf(greatGrandChild.Item)
                //                        .SetValue("bodyText", "<p>Great Grand Child Content " + k + " Revision " + (l + 2) + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                //                        .Publish()
                //                        .Commit();

                //                }

                //                if (k >= 8)
                //                {
                //                    // Create unpublished revisions
                //                    Hive.Cms().NewRevisionOf(greatGrandChild.Item)
                //                            .SetValue("bodyText", "<p>Great Grand Child Content " + k + " Unpublished Revision " + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                //                            .Commit();
                //                }
                //            }
                //        }
                //    }
                //}
            }

            //for(var i = 0; i < 2; i++)
            //{
            //    var trashChild = Hive.Cms().NewRevision("Trash Child" + i, "trash-child-" + i, "textpageSchema")
            //        .SetParent(FixedHiveIds.ContentRecylceBin)
            //        .SetValue("bodyText", "<p>Trash Child Content " + i + " Revision 1 " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
            //        .Publish()
            //        .Commit();
            //}
        }
        public void Integration_WhenEntityIsAdded_EnsureUniqueNameTask_RenamesItemIfNotUnique()
        {
            IHiveManager hive = null;
            try
            {
                var nhibernateTestSetup = new NhibernateTestSetupHelper(useNhProf:true);

                var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);

                hive = new HiveManager(
                        new[]
                        {
                            new ProviderMappingGroup(
                                "test",
                                new WildcardUriMatch("content://"),
                                nhibernateTestSetup.ReadonlyProviderSetup,
                                nhibernateTestSetup.ProviderSetup,
                                nhibernateTestSetup.FakeFrameworkContext),
                            storageProvider.CreateGroup("uploader", "storage://file-uploader"),
                        },
                        nhibernateTestSetup.FakeFrameworkContext);


                SetupContentTest(hive);

                hive.FrameworkContext.TaskManager.AddTask(TaskTriggers.Hive.Revisions.PreAddOrUpdateOnUnitComplete,
                                          () => new EnsureUniqueNameTask(hive.FrameworkContext),
                                          true);

                hive.Cms().NewContentType("test-for-dupes")
                    .Define("sometext", "singleLineTextBox", "tab1")
                    .Commit();

                var parent = hive.Cms().NewRevision("My site root", "root", "test-for-dupes")
                    .SetValue("sometext", "hallow")
                    .Publish()
                    .Commit();

                var firstItem = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                    .SetValue("sometext", "hallow")
                    .SetParent(parent.Item)
                    .Publish()
                    .Commit();

                var firstUnDupedItem = hive.Cms().NewRevision("My Name Unpublished", "my-name-unpublished", "test-for-dupes")
                    .SetValue("sometext", "hallow")
                    .SetParent(parent.Item)
                    .Publish()
                    .Commit();

                var shouldBeModified = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                    .SetValue("sometext", "hallow")
                    .SetParent(parent.Item)
                    .Publish()
                    .Commit();

                var shouldBeModified2 = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                    .SetValue("sometext", "hallow")
                    .SetParent(parent.Item)
                    .Publish()
                    .Commit();

                Assert.That(shouldBeModified.Success, Is.True);
                Assert.That(firstItem.Item.Id, Is.Not.EqualTo(shouldBeModified.Item.Id));
                Assert.That(firstItem.Item.Id, Is.Not.EqualTo(shouldBeModified2.Item.Id));
                Assert.That(shouldBeModified.Item.Id, Is.Not.EqualTo(shouldBeModified2.Item.Id));

                hive.Context.GenerationScopedCache.Clear();

                var queryForName = hive.Cms().QueryContent().Where(x => x.InnerAttribute<string>(NodeNameAttributeDefinition.AliasValue, "Name") == "My Name").ToList();
                Assert.That(queryForName.Count, Is.EqualTo(1));

                hive.Context.GenerationScopedCache.Clear();

                using(var uow = hive.OpenReader<IContentStore>())
                {
                    var checkFirstItem = uow.Repositories.Get(firstItem.Item.Id);
                    var checkRenamedItem = uow.Repositories.Get(shouldBeModified.Item.Id);
                    var checkRenamedItem2 = uow.Repositories.Get(shouldBeModified2.Item.Id);

                    var firstItemName = checkFirstItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];
                    var checkRenamedItemName = checkRenamedItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];
                    var checkRenamedItemName2 = checkRenamedItem2.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];

                    Assert.That(firstItemName, Is.Not.EqualTo(checkRenamedItemName));
                    Assert.That(firstItemName, Is.Not.EqualTo(checkRenamedItemName2));
                    Assert.That(checkRenamedItemName, Is.Not.EqualTo(checkRenamedItemName2));
                    Assert.That(checkRenamedItemName, Is.EqualTo("My Name (1)"));
                    Assert.That(checkRenamedItemName2, Is.EqualTo("My Name (2)"));

                    var firstItemUrlName = checkFirstItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];
                    var checkRenamedItemUrlName = checkRenamedItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];
                    var checkRenamedItemUrlName2 = checkRenamedItem2.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];

                    Assert.That(firstItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName));
                    Assert.That(firstItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName2));
                    Assert.That(checkRenamedItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName2));
                    Assert.That(checkRenamedItemUrlName, Is.EqualTo("my-name-1"));
                    Assert.That(checkRenamedItemUrlName2, Is.EqualTo("my-name-2"));
                }
            }
            finally
            {
                hive.IfNotNull(x => x.Dispose());
            }
            
        }
Example #37
0
        public void OnceDisposed_ExceptionsThrown()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();

            //Act
            var uow = setup.ProviderSetup.UnitFactory.Create();
            uow.Dispose();

            var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");
            Assert.Throws<ObjectDisposedException>(() => { var accessorTest = uow.EntityRepository; });
            Assert.Throws<ObjectDisposedException>(() => { var accessorTest = uow.EntityRepository.Revisions; });
            Assert.Throws<ObjectDisposedException>(() => { var accessorTest = uow.EntityRepository.Schemas; });
            Assert.Throws<ObjectDisposedException>(() => { var accessorTest = uow.EntityRepository.Schemas.Revisions; });
            Assert.Throws<ObjectDisposedException>(() => uow.EntityRepository.Schemas.AddOrUpdate(entity));
        }
Example #38
0
 public void GetWithNullId_ResultsInArgumentNullException()
 {
     //Arrange
     var setup = new NhibernateTestSetupHelper();
     using (var writer = setup.ProviderSetup.UnitFactory.Create())
     {
         //Assert
         Assert.Throws<ArgumentNullException>(() => writer.EntityRepository.Get<TypedEntity>(HiveId.Empty));
     }
 }
Example #39
0
        public void OnceUnitOpened_TransactionPropertyIsNotPopulatedUntilEnsureBegunCalled()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();

            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                dynamic access = new AccessPrivateWrapper(writer.EntityRepository.Transaction);
                Assert.Null(access._nhTransaction);
                writer.EntityRepository.Transaction.EnsureBegun();
                Assert.NotNull(access._nhTransaction);
            }
        }
Example #40
0
        public void Setup()
        {
            // Setup Hive
            _nhibernateTestSetup = new NhibernateTestSetupHelper(useNhProf: true);

            var storageProvider = new IoHiveTestSetupHelper(_nhibernateTestSetup.FakeFrameworkContext);

            Hive =
                new HiveManager(
                    new[]
                        {
                            new ProviderMappingGroup(
                                "test",
                                new WildcardUriMatch("content://"),
                                _nhibernateTestSetup.ReadonlyProviderSetup,
                                _nhibernateTestSetup.ProviderSetup,
                                _nhibernateTestSetup.FakeFrameworkContext),
                            storageProvider.CreateGroup("uploader", "storage://")
                        },
                    _nhibernateTestSetup.FakeFrameworkContext);

            // Setup Schemas
            Hive.Cms()
                .UsingStore<IContentStore>()
                .NewSchema("homepageSchema")
                .Define(NodeNameAttributeDefinition.AliasValue, NodeNameAttributeType.AliasValue, "tab1")
                .Define(SelectedTemplateAttributeDefinition.AliasValue, SelectedTemplateAttributeType.AliasValue, "tab1")
                .Define("siteName", "system-string-type", "tab1")
                .Define("siteDescription", "system-string-type", "tab1")
                .Define("bodyText", "system-long-string-type", "tab2")
                .Commit();

            Hive.Cms()
                .UsingStore<IContentStore>()
                .NewSchema("textpageSchema")
                .Define(NodeNameAttributeDefinition.AliasValue, NodeNameAttributeType.AliasValue, "tab1")
                .Define(SelectedTemplateAttributeDefinition.AliasValue, SelectedTemplateAttributeType.AliasValue, "tab1")
                .Define("bodyText", "system-long-string-type", "tab1")
                .Commit();

            Hive.Cms()
                .UsingStore<IContentStore>()
                .NewSchema("complexpageSchema")
                .Define(NodeNameAttributeDefinition.AliasValue, NodeNameAttributeType.AliasValue, "tab1")
                .Define(SelectedTemplateAttributeDefinition.AliasValue, SelectedTemplateAttributeType.AliasValue, "tab1")
                .Define("color", "system-string-type", "tab1")
                .Define("integer", "system-integer-type", "tab1")
                .Define("date", "system-date-time-type", "tab1")
                .Define("bodyText", "system-long-string-type", "tab1")
                .Commit();

            // Setup Content with a specific DateTime
            _fixedDate = DateTime.Now.Subtract(TimeSpan.FromMinutes(5));
            _homePage = Hive.Cms().NewRevision("Home", "home", "homepageSchema")
                .SetSelectedTemplate(new HiveId("storage", "templates", new HiveIdValue("/homepageTemplate.cshtml")))
                .SetValue("siteName", "Test Site Name")
                .SetValue("siteDescription", "Test Site Description")
                .SetValue("bodyText", "<p>Test Site Body Text</p>")
                .Publish();

            _homePage.Revision.Item.UtcCreated = _fixedDate;
            _homePage.Revision.MetaData.UtcStatusChanged = _fixedDate;
            _homePage.Commit();

            for (var i = 0; i < 5; i++)
            {
                // Create child
                var child = Hive.Cms().NewRevision("Child" + i, "child-" + i, "textpageSchema")
                    .SetSelectedTemplate(new HiveId("storage", "templates", new HiveIdValue("/textpageTemplate.cshtml")))
                    .SetParent(_homePage.Item)
                    .SetValue("bodyText",
                              "<p>Child Content " + i + " Revision 1 " + Guid.NewGuid().ToString() + " " +
                              Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " +
                              Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                    .Publish()
                    .Commit();

                // Create revisions
                //for (var j = 0; j < i; j++)
                //{
                //    Hive.Cms().NewRevisionOf(child.Item)
                //        .SetValue("bodyText", "<p>Child Content " + i + " Revision " + (j + 2) + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                //        .Publish()
                //        .Commit();

                //}

                //if (i < 3)
                //{
                //    for (var j = 0; j < 6; j++)
                //    {
                //        // Create grand child
                //        var grandChild = Hive.Cms().NewRevision("Grand Child" + j, "grand-child-" + j, "textpageSchema")
                //            .SetParent(child.Item)
                //            .SetValue("bodyText", "<p>Grand Child Content " + j + " Revision 1 " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                //            .Publish()
                //            .Commit();

                //        // Create revisions
                //        for (var k = 0; k < j; k++)
                //        {
                //            Hive.Cms().NewRevisionOf(grandChild.Item)
                //                .SetValue("bodyText", "<p>Grand Child Content " + j + " Revision " + (k + 2) + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                //                .Publish()
                //                .Commit();

                //        }

                //        if (j < 2)
                //        {
                //            // Create great grand children
                //            for (var k = 0; k < 10; k++)
                //            {
                //                var greatGrandChild =
                //                    Hive.Cms().NewRevision("Great Grand Child" + k, "great-grand-child-" + k,
                //                                           "complexpageSchema")
                //                        .SetParent(grandChild.Item)
                //                        .SetValue("color", "#0000" + k.ToString() + k.ToString())
                //                        .SetValue("integer", k)
                //                        .SetValue("date", DateTimeOffset.Now.AddDays(k))
                //                        .SetValue("bodyText",
                //                                  "<p>Great Grand Child Content " + k + " Revision 1 " +
                //                                  Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " +
                //                                  Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " +
                //                                  Guid.NewGuid().ToString() + " the end.</p>")
                //                        .Publish()
                //                        .Commit();

                //                // Create revisions
                //                for (var l = 0; l < k; l++)
                //                {
                //                    Hive.Cms().NewRevisionOf(greatGrandChild.Item)
                //                        .SetValue("bodyText", "<p>Great Grand Child Content " + k + " Revision " + (l + 2) + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                //                        .Publish()
                //                        .Commit();

                //                }

                //                if (k >= 8)
                //                {
                //                    // Create unpublished revisions
                //                    Hive.Cms().NewRevisionOf(greatGrandChild.Item)
                //                            .SetValue("bodyText", "<p>Great Grand Child Content " + k + " Unpublished Revision " + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
                //                            .Commit();
                //                }
                //            }
                //        }
                //    }
                //}
            }

            //for(var i = 0; i < 2; i++)
            //{
            //    var trashChild = Hive.Cms().NewRevision("Trash Child" + i, "trash-child-" + i, "textpageSchema")
            //        .SetParent(FixedHiveIds.ContentRecylceBin)
            //        .SetValue("bodyText", "<p>Trash Child Content " + i + " Revision 1 " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " " + Guid.NewGuid().ToString() + " the end.</p>")
            //        .Publish()
            //        .Commit();
            //}
        }
        public void SetUp()
        {
            _nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(_nhibernateTestSetup.FakeFrameworkContext);

            Hive =
                new HiveManager(
                    new[]
            {
                new ProviderMappingGroup(
                    "test",
                    new WildcardUriMatch("content://"),
                    _nhibernateTestSetup.ReadonlyProviderSetup,
                    _nhibernateTestSetup.ProviderSetup,
                    _nhibernateTestSetup.FakeFrameworkContext),
                storageProvider.CreateGroup("uploader", "storage://")
            },
                    _nhibernateTestSetup.FakeFrameworkContext);

            // Setup Schemas
            Hive.Cms()
            .UsingStore <IContentStore>()
            .NewSchema("textpageSchema")
            .Define(NodeNameAttributeDefinition.AliasValue, NodeNameAttributeType.AliasValue, "tab1")
            .Define(SelectedTemplateAttributeDefinition.AliasValue, SelectedTemplateAttributeType.AliasValue, "tab1")
            .Commit();

            // Setup Content
            var root = Hive.Cms().NewRevision("Root", "root", "textpageSchema")
                       .SetSelectedTemplate(new HiveId("storage", "templates", new HiveIdValue("/textpageTemplate.cshtml")))
                       .Publish()
                       .Commit();

            // Avoid type scanning in a unit test runner by passing in the known assembly under test
            var dynamicExtensionAssemblies = typeof(RenderViewModelExtensions).Assembly.AsEnumerableOfOne();

            _root = new Content(root.Item).Bend(Hive, null, null, dynamicExtensionAssemblies);

            var children = new List <dynamic>();

            for (var i = 0; i < 10; i++)
            {
                // Create child
                var child = Hive.Cms().NewRevision("Child" + i, "child-" + i, "textpageSchema")
                            .SetSelectedTemplate(new HiveId("storage", "templates", new HiveIdValue("/textpageTemplate.cshtml")))
                            .SetParent(root.Item)
                            .Publish()
                            .Commit();

                children.Add(new Content(child.Item).Bend(Hive, null, null, dynamicExtensionAssemblies));
            }

            _children = children;

            // Setup dependency resolver
            var dependencyResolver = Substitute.For <IDependencyResolver>();

            dependencyResolver.GetService(typeof(IHiveManager)).Returns(Hive);

            DependencyResolver.SetResolver(dependencyResolver);
        }
Example #42
0
        public void UnitTestCtor_SessionSurvivesUnits()
        {
            // Arrange
            var setup = new NhibernateTestSetupHelper();
            Guid entitySessionId;
            Guid revisionSessionId;
            Guid schemaSessionId;
            
            // Act
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                dynamic entitySession = new AccessPrivateWrapper(((EntityRepository)writer.EntityRepository).Helper.NhSession);
                dynamic schemaSession = new AccessPrivateWrapper(((SchemaRepository)writer.EntityRepository.Schemas).Helper.NhSession);
                dynamic revisionSession = new AccessPrivateWrapper(((RevisionRepository)writer.EntityRepository.Revisions).Helper.NhSession);
                entitySessionId = entitySession.SessionId;
                schemaSessionId = schemaSession.SessionId;
                revisionSessionId = revisionSession.SessionId;
            }

            // Assert
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                dynamic entitySession = new AccessPrivateWrapper(((EntityRepository) writer.EntityRepository).Helper.NhSession);
                dynamic schemaSession = new AccessPrivateWrapper(((SchemaRepository)writer.EntityRepository.Schemas).Helper.NhSession);
                dynamic revisionSession = new AccessPrivateWrapper(((RevisionRepository)writer.EntityRepository.Revisions).Helper.NhSession);

                Assert.AreNotEqual(entitySession.SessionId, Guid.Empty);
                Assert.AreNotEqual(schemaSession.SessionId, Guid.Empty);
                Assert.AreNotEqual(revisionSession.SessionId, Guid.Empty);
                Assert.AreEqual(entitySessionId, entitySession.SessionId);
                Assert.AreEqual(schemaSessionId, entitySession.SessionId);
                Assert.AreEqual(revisionSessionId, entitySession.SessionId);
                Assert.AreEqual(entitySession.SessionId, schemaSession.SessionId);
                Assert.AreEqual(entitySession.SessionId, revisionSession.SessionId);
            }
        }
Example #43
0
        public void OnceUnitOfWorkCommitted_SchemaDataStoreUpdated()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();
            HiveId id;
            
            //Act
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");

                writer.EntityRepository.Schemas.AddOrUpdate(entity);
                writer.Complete();
                id = entity.Id;
                Assert.IsNotNull(writer.EntityRepository.Schemas.Get<AttributeType>(id));
            }

            setup.SessionForTest.Clear();

            //assert
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.IsNotNull(writer.EntityRepository.Schemas.Get<AttributeType>(id));
            }
        }
        public void SavingNodeVersion_ViaAddingToNodeCollection_UpdatesExistingInstance_WhenMerging()
        {
            var setup = new NhibernateTestSetupHelper();
            var node  = new Node()
            {
                IsDisabled = false
            };

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                node = setup.SessionForTest.Merge(node) as Node;
                //setup.SessionForTest.SaveOrUpdate(node);
                tran.Commit();
            }

            Assert.That(node.Id, Is.Not.EqualTo(Guid.Empty));
            setup.SessionForTest.Clear();

            Assert.That(setup.SessionForTest.QueryOver <Node>().List().Count, Is.EqualTo(1));
            Assert.That(node.Id, Is.Not.EqualTo(Guid.Empty));

            NodeVersion nodeVersion = null;

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                // Get the node from the cleared session to mimic what the NH revision repository is doing
                node = setup.SessionForTest.Get <Node>(node.Id);

                var currentNodeId = node.Id;
                Assert.That(currentNodeId, Is.Not.EqualTo(Guid.Empty));

                var schema = new AttributeSchemaDefinition {
                    Alias = "tes1", SchemaType = "content"
                };
                nodeVersion = new NodeVersion {
                    DefaultName = "test", Node = node, AttributeSchemaDefinition = schema
                };

                nodeVersion = setup.SessionForTest.Merge(nodeVersion) as NodeVersion;


                node.NodeVersions.Add(nodeVersion);

                node = setup.SessionForTest.Merge(node) as Node;

                tran.Commit();
                Assert.That(currentNodeId, Is.EqualTo(node.Id));
                Assert.That(node.NodeVersions.Count, Is.EqualTo(1));
                Assert.That(node.NodeVersions.First().Id, Is.EqualTo(nodeVersion.Id));
                Assert.That(nodeVersion.Id, Is.Not.EqualTo(Guid.Empty));
            }

            setup.SessionForTest.Clear();

            Assert.That(setup.SessionForTest.QueryOver <Node>().List().Count, Is.EqualTo(2)); // One for the Node, one for the Schema
            Assert.That(node.Id, Is.Not.EqualTo(Guid.Empty));

            node = setup.SessionForTest.Get <Node>(node.Id);

            Assert.That(node.NodeVersions, Is.Not.Empty);
            Assert.That(node.NodeVersions.Count, Is.EqualTo(1));
            Assert.That(nodeVersion.Id, Is.Not.EqualTo(Guid.Empty));
            Assert.That(node.NodeVersions.First().Id, Is.EqualTo(nodeVersion.Id));
        }
        public void WhenEntityIsAdded_PreAddOrUpdateBeforeUnitComplete_TaskChangesItem_ItemIsSavedWithNewValues()
        {
            // Arrange
            var nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);

            var hive = new HiveManager(
                    new[]
                        {
                            new ProviderMappingGroup(
                                "test",
                                new WildcardUriMatch("content://"),
                                nhibernateTestSetup.ReadonlyProviderSetup,
                                nhibernateTestSetup.ProviderSetup,
                                nhibernateTestSetup.FakeFrameworkContext),
                            storageProvider.CreateGroup("uploader", "storage://file-uploader"),
                        },
                    nhibernateTestSetup.FakeFrameworkContext);

            var eventMock = Substitute.For<AbstractTask>(hive.FrameworkContext);
            eventMock.When(x => x.Execute(Arg.Any<TaskExecutionContext>()))
                .Do(x =>
            {
                var context = x.Args()[0] as TaskExecutionContext;
                if(context != null)
                {
                    var uow = context.EventSource as IGroupUnit<IProviderTypeFilter>;
                    var args = context.EventArgs.CallerEventArgs as HiveEntityPreActionEventArgs;
                    if (uow != null && args != null)
                    {
                        var item = args.Entity as TypedEntity;
                        if (item != null &&
                            item.Attributes.Any(
                                y => y.AttributeDefinition.Alias == NodeNameAttributeDefinition.AliasValue))
                        {
                            item.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"] = "Something else";

                            uow.Repositories.AddOrUpdate(item);
                        }
                    }
                }
            });

            // Act
            hive.FrameworkContext.TaskManager.AddTask(TaskTriggers.Hive.PreAddOrUpdateOnUnitComplete, () => eventMock, true);

            var id = HiveId.Empty;

            using (var uow = hive.OpenWriter<IContentStore>())
            {
                var anything = HiveModelCreationHelper.MockTypedEntity();

                // Cause the task to be fired
                uow.Repositories.AddOrUpdate(anything);
                uow.Complete();

                id = anything.Id;
            }

            using (var uow = hive.OpenWriter<IContentStore>())
            {
                // Cause the task to be fired
                var getItem = uow.Repositories.Get(id); // Store is mocked

                Assert.NotNull(getItem);

                // Assert the task has been fired
                Assert.AreEqual("Something else", getItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"]);
            }
        }
Example #46
0
        public void SavingNodeVersion_ViaAddingToNodeCollection_UpdatesExistingInstance_WhenMerging()
        {
            var setup = new NhibernateTestSetupHelper();
            var node = new Node() { IsDisabled = false };

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                node = setup.SessionForTest.Merge(node) as Node;
                //setup.SessionForTest.SaveOrUpdate(node);
                tran.Commit();
            }

            Assert.That(node.Id, Is.Not.EqualTo(Guid.Empty));
            setup.SessionForTest.Clear();

            Assert.That(setup.SessionForTest.QueryOver<Node>().List().Count, Is.EqualTo(1));
            Assert.That(node.Id, Is.Not.EqualTo(Guid.Empty));

            NodeVersion nodeVersion = null;

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                // Get the node from the cleared session to mimic what the NH revision repository is doing
                node = setup.SessionForTest.Get<Node>(node.Id);

                var currentNodeId = node.Id;
                Assert.That(currentNodeId, Is.Not.EqualTo(Guid.Empty));

                var schema = new AttributeSchemaDefinition { Alias = "tes1", SchemaType = "content" };
                nodeVersion = new NodeVersion { DefaultName = "test", Node = node, AttributeSchemaDefinition = schema };

                nodeVersion = setup.SessionForTest.Merge(nodeVersion) as NodeVersion;


                node.NodeVersions.Add(nodeVersion);
                
                node = setup.SessionForTest.Merge(node) as Node;

                tran.Commit();
                Assert.That(currentNodeId, Is.EqualTo(node.Id));
                Assert.That(node.NodeVersions.Count, Is.EqualTo(1));
                Assert.That(node.NodeVersions.First().Id, Is.EqualTo(nodeVersion.Id));
                Assert.That(nodeVersion.Id, Is.Not.EqualTo(Guid.Empty));
            }

            setup.SessionForTest.Clear();

            Assert.That(setup.SessionForTest.QueryOver<Node>().List().Count, Is.EqualTo(2)); // One for the Node, one for the Schema
            Assert.That(node.Id, Is.Not.EqualTo(Guid.Empty));

            node = setup.SessionForTest.Get<Node>(node.Id);

            Assert.That(node.NodeVersions, Is.Not.Empty);
            Assert.That(node.NodeVersions.Count, Is.EqualTo(1));
            Assert.That(nodeVersion.Id, Is.Not.EqualTo(Guid.Empty));
            Assert.That(node.NodeVersions.First().Id, Is.EqualTo(nodeVersion.Id));
        }
Example #47
0
        public void WhenAddingNodeVersionToSession_ThenClearingAndResettingAttributesCollection_BeforeCommitting_AttributesCollectionIsCorrect()
        {
            var setup = new NhibernateTestSetupHelper();
            var node = new Node() { IsDisabled = false };

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                node = setup.SessionForTest.Merge(node) as Node;
                tran.Commit();
            }
            setup.SessionForTest.Clear();

            NodeVersion nodeVersion = null;

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                // Get the node from the cleared session to mimic what the NH revision repository is doing
                node = setup.SessionForTest.Get<Node>(node.Id);

                var currentNodeId = node.Id;
                Assert.That(currentNodeId, Is.Not.EqualTo(Guid.Empty));

                var schema = new AttributeSchemaDefinition { Alias = "tes1", SchemaType = "content" };
                var type = new AttributeType { Alias = "type1" };
                var def = new AttributeDefinition
                    { Alias = "def1", AttributeDefinitionGroup = new AttributeDefinitionGroup { Alias = "group1", AttributeSchemaDefinition = schema}, AttributeSchemaDefinition = schema, AttributeType = type};
                schema.AttributeDefinitions.Add(def);
                nodeVersion = new NodeVersion { DefaultName = "test", Node = node, AttributeSchemaDefinition = schema };
                nodeVersion.Attributes.Add(new Attribute { AttributeDefinition = def, NodeVersion = nodeVersion });
                nodeVersion.Node = node;

                // Merge the version into the session, which will add it to 1st-level cache but we haven't committed to db yet
                nodeVersion = setup.SessionForTest.Merge(nodeVersion) as NodeVersion;

                var persister = setup.SessionForTest.GetSessionImplementation().PersistenceContext;

                nodeVersion.Attributes.Clear();
                nodeVersion.Attributes.Add(new Attribute { AttributeDefinition = def, NodeVersion = nodeVersion });

                nodeVersion = setup.SessionForTest.Merge(nodeVersion) as NodeVersion;

                node.NodeVersions.Add(nodeVersion);

                setup.SessionForTest.Merge(node);

                tran.Commit();
            }
            setup.SessionForTest.Clear();

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                var reloadVersion = setup.SessionForTest.Get<NodeVersion>(nodeVersion.Id);
                reloadVersion.Attributes.Clear();
                setup.SessionForTest.Merge(reloadVersion);
                tran.Commit();
            }

            using (var tran = setup.SessionForTest.BeginTransaction())
            {
                var reloadVersion = setup.SessionForTest.Get<NodeVersion>(nodeVersion.Id);
                Assert.That(reloadVersion.Attributes.Count, Is.EqualTo(1));
            }
        }
 protected void TestSetup()
 {
     _helper           = new NhibernateTestSetupHelper();
     _groupUnitFactory = new GroupUnitFactory(_helper.ProviderSetup, new Uri("content://"), FakeHiveCmsManager.CreateFakeRepositoryContext(_helper.FakeFrameworkContext));
 }
Example #49
0
        public void IfUnitOfWorkUncomitted_EntityDataStoreNotUpdated()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();
            HiveId id;

            //act
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity = HiveModelCreationHelper.MockTypedEntity(false);
                uow.EntityRepository.AddOrUpdate(entity);
                id = entity.Id;
                Assert.IsNotNull(uow.EntityRepository.Get<TypedEntity>(id));
            }

            setup.SessionForTest.Clear();

            //assert
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.AreNotEqual(id, HiveId.Empty);
                Assert.IsNull(uow.EntityRepository.Get<TypedEntity>(id));
            }
        }
Example #50
0
        public void OnceUnitOfWorkCommitted_RevisionDataStoreUpdated()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();
            HiveId id;
            HiveId revisionId;

            //Act
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                //var entitySchema = HiveModelCreationHelper.MockEntitySchema("blah-alias", "blah-name");
                var entity = HiveModelCreationHelper.MockTypedEntity(false);
                var revision = new Revision<TypedEntity>(entity);

                writer.EntityRepository.Revisions.AddOrUpdate(revision);
                writer.Complete();

                id = revision.Item.Id;
                revisionId = revision.MetaData.Id;
                Assert.IsNotNull(writer.EntityRepository.Revisions.Get<TypedEntity>(id, revisionId));
            }

            setup.SessionForTest.Clear();

            //assert
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.AreNotEqual(id, Guid.Empty);
                Assert.IsNotNull(writer.EntityRepository.Revisions.Get<TypedEntity>(id, revisionId));
            }
        }
Example #51
0
        public void IfUnitOfWorkUncomitted_SchemaDataStoreNotUpdated()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();
            HiveId id;

            //act
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                var entitySchema = HiveModelCreationHelper.MockEntitySchema("blah-alias", "blah-name");
                uow.EntityRepository.Schemas.AddOrUpdate(entitySchema);
                id = entitySchema.Id;
                Assert.IsNotNull(uow.EntityRepository.Schemas.Get<EntitySchema>(id));
            }

            setup.SessionForTest.Clear();

            //assert
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.AreNotEqual(id, HiveId.Empty);
                Assert.IsNull(uow.EntityRepository.Schemas.Get<EntitySchema>(id));
            }
        }
Example #52
0
        public void IfUnitOfWorkUncomitted_RevisionDataStoreNotUpdated()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();
            HiveId id;
            HiveId revisionId;

            //act
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity = HiveModelCreationHelper.MockTypedEntity(false);
                var revision = new Revision<TypedEntity>(entity);

                uow.EntityRepository.Revisions.AddOrUpdate(revision);

                id = revision.Item.Id;
                revisionId = revision.MetaData.Id;
            }

            setup.SessionForTest.Clear();

            //assert
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.AreNotEqual(id, HiveId.Empty);
                Assert.AreNotEqual(revisionId, HiveId.Empty);
                Assert.IsNull(uow.EntityRepository.Revisions.Get<TypedEntity>(id, revisionId));
            }
        }
        public void SetUp()
        {
            _nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(_nhibernateTestSetup.FakeFrameworkContext);

            Hive =
                new HiveManager(
                    new[]
                        {
                            new ProviderMappingGroup(
                                "test",
                                new WildcardUriMatch("content://"),
                                _nhibernateTestSetup.ReadonlyProviderSetup,
                                _nhibernateTestSetup.ProviderSetup,
                                _nhibernateTestSetup.FakeFrameworkContext),
                                storageProvider.CreateGroup("uploader", "storage://")
                        },
                    _nhibernateTestSetup.FakeFrameworkContext);

            // Setup Schemas
            Hive.Cms()
                .UsingStore<IContentStore>()
                .NewSchema("textpageSchema")
                .Define(NodeNameAttributeDefinition.AliasValue, NodeNameAttributeType.AliasValue, "tab1")
                .Define(SelectedTemplateAttributeDefinition.AliasValue, SelectedTemplateAttributeType.AliasValue, "tab1")
                .Commit();

            // Setup Content
            var root = Hive.Cms().NewRevision("Root", "root", "textpageSchema")
                .SetSelectedTemplate(new HiveId("storage", "templates", new HiveIdValue("/textpageTemplate.cshtml")))
                .Publish()
                .Commit();

            // Avoid type scanning in a unit test runner by passing in the known assembly under test
            var dynamicExtensionAssemblies = typeof (RenderViewModelExtensions).Assembly.AsEnumerableOfOne();

            _root = new Content(root.Item).Bend(Hive, null, null, dynamicExtensionAssemblies);

            var children = new List<dynamic>();

            for (var i = 0; i < 10; i++)
            {
                // Create child
                var child = Hive.Cms().NewRevision("Child" + i, "child-" + i, "textpageSchema")
                    .SetSelectedTemplate(new HiveId("storage", "templates", new HiveIdValue("/textpageTemplate.cshtml")))
                    .SetParent(root.Item)
                    .Publish()
                    .Commit();

                children.Add(new Content(child.Item).Bend(Hive, null, null, dynamicExtensionAssemblies));
            }

            _children = children;

            // Setup dependency resolver
            var dependencyResolver = Substitute.For<IDependencyResolver>();
            dependencyResolver.GetService(typeof(IHiveManager)).Returns(Hive);

            DependencyResolver.SetResolver(dependencyResolver);
        }
        private static HiveManager GetHiveForTest()
        {
            var nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);


            var hive =
                new HiveManager(
                    new[]
                        {
                            new ProviderMappingGroup(
                                "test",
                                new WildcardUriMatch("content://"),
                                nhibernateTestSetup.ReadonlyProviderSetup,
                                nhibernateTestSetup.ProviderSetup,
                                nhibernateTestSetup.FakeFrameworkContext),
                            storageProvider.CreateGroup("uploader", "storage://")
                        },
                    nhibernateTestSetup.FakeFrameworkContext);

            return hive;
        }