public void Setup() { var helper = new NhibernateTestSetupHelper(new FakeFrameworkContext()); ProviderSetup = helper.ProviderSetup; ReadonlyProviderSetup = helper.ReadonlyProviderSetup; }
public void TestSetup() { var testSetup = new NhibernateTestSetupHelper(); _nhSessionHelper = new NhSessionHelper(testSetup.SessionForTest, testSetup.FakeFrameworkContext); _rdbmsTypeMapper = new RdbmsModelMapper(_nhSessionHelper, testSetup.FakeFrameworkContext); _rdbmsTypeMapper.ConfigureMappings(); }
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 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=umbraco;password=umbraco", SupportedNHDrivers.MsSql2008, "call", true, useNhProf: true); //SetupHelper = new NhibernateTestSetupHelper(@"data source=C:\Users\Alex\Documents\My Web Sites\Umbraco.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=umbraco;password=umbraco", SupportedNHDrivers.MsSql2008, "call", true, useNhProf: true); //_helper = new NhibernateTestSetupHelper(@"data source=C:\Users\Alex\Documents\My Web Sites\Umbraco.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)); }
/// <summary> /// Creates a new HiveManager with an NHibernate default mapping group and the supplied provider mapping groups /// appended /// </summary> /// <param name="providerMappingGroups"></param> /// <param name="frameworkContext"></param> /// <returns></returns> public static IHiveManager NewWithNhibernate(IEnumerable <ProviderMappingGroup> providerMappingGroups, FakeFrameworkContext frameworkContext) { var helper = new NhibernateTestSetupHelper(frameworkContext); var uriMatch = new WildcardUriMatch(new Uri("content://")); var persistenceMappingGroup = new ProviderMappingGroup( "default", uriMatch, helper.ReadonlyProviderSetup, helper.ProviderSetup, frameworkContext); return(new HiveManager(new[] { persistenceMappingGroup }.Union(providerMappingGroups), frameworkContext)); }
protected void SetupFakeEnvironment() { // TODO: Prettify and extract smaller methods 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); AppContext = new FakeUmbracoApplicationContext(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", Umbraco.Framework.Security.Model.FixedHiveIds. MemberProfileVirtualRoot, membersMembershipProvider, Enumerable.Empty<MembershipProviderElement>()); PublicAccessService = new PublicAccessService(Hive, MembershipService, AppContext.FrameworkContext); }
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 })); 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); }
private ProviderMappingGroup CreateFakeDictionaryMappingGroup(FakeFrameworkContext frameworkContext) { var helper = new NhibernateTestSetupHelper(frameworkContext); var uriMatch = new WildcardUriMatch(new Uri("dictionary://")); var persistenceMappingGroup = new ProviderMappingGroup( "dictionary", uriMatch, helper.ReadonlyProviderSetup, helper.ProviderSetup, frameworkContext); return persistenceMappingGroup; }
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)); }
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)); } }
public static TypedEntity SetupTestData(Guid newGuid, Guid newGuidRedHerring, NhibernateTestSetupHelper repo) { var entity = HiveModelCreationHelper.MockTypedEntity(); entity.Id = new HiveId(newGuid); entity.EntitySchema.Alias = "schema-alias1"; var existingDef = entity.EntitySchema.AttributeDefinitions[0]; var newDef = HiveModelCreationHelper.CreateAttributeDefinition("aliasForQuerying", "", "", existingDef.AttributeType, existingDef.AttributeGroup, true); entity.EntitySchema.AttributeDefinitions.Add(newDef); entity.Attributes.Add(new TypedAttribute(newDef, "my-new-value")); entity.Attributes[1].DynamicValue = "not-on-red-herring"; entity.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"] = "my-test-route"; var redHerringEntity = HiveModelCreationHelper.MockTypedEntity(); redHerringEntity.Id = new HiveId(newGuidRedHerring); redHerringEntity.EntitySchema.Alias = "redherring-schema"; using (var uow = repo.ProviderSetup.UnitFactory.Create()) { uow.EntityRepository.AddOrUpdate(entity); uow.EntityRepository.AddOrUpdate(redHerringEntity); uow.Complete(); } return entity; }
public static TypedEntity SetupTestData(Guid newGuid, Guid newGuidRedHerring, NhibernateTestSetupHelper repo) { var entity = HiveModelCreationHelper.MockTypedEntity(); entity.Id = new HiveId(newGuid); entity.EntitySchema.Alias = "schema-alias1"; var existingDef = entity.EntitySchema.AttributeDefinitions[0]; var newDef = HiveModelCreationHelper.CreateAttributeDefinition("aliasForQuerying", "", "", existingDef.AttributeType, existingDef.AttributeGroup, true); entity.EntitySchema.AttributeDefinitions.Add(newDef); entity.Attributes.Add(new TypedAttribute(newDef, "my-new-value")); entity.Attributes[1].DynamicValue = "not-on-red-herring"; entity.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"] = "my-test-route"; var redHerringEntity = HiveModelCreationHelper.MockTypedEntity(); redHerringEntity.Id = new HiveId(newGuidRedHerring); redHerringEntity.EntitySchema.Alias = "redherring-schema"; using (var uow = repo.ProviderSetup.UnitFactory.Create()) { uow.EntityRepository.AddOrUpdate(entity); uow.EntityRepository.AddOrUpdate(redHerringEntity); uow.Complete(); } return(entity); }
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); }
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 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)); } }
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); } }
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 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); } }
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 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)); }
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 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 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"]); } }
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)); } }
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 BeforeTest() { SetupHelper = new NhibernateTestSetupHelper(); }
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 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)); } }