public void DetailCollection_MovesToNextVersion_WhenReplacing() { // Create item to link in original version PersistableItem1 link1 = CreateOneItem <PersistableItem1>(0, "link1", null); persister.Save(link1); // Create item to link in new version PersistableItem1 link2 = CreateOneItem <PersistableItem1>(0, "link2", null); persister.Save(link2); PersistableItem1 master = CreateOneItem <PersistableItem1>(0, "root", null); master.ContentLinks = new[] { link1 }; persister.Save(master); PersistableItem1 version1 = (PersistableItem1)versioner.AddVersion(master); master.ContentLinks = new[] { link2 }; persister.Save(master); var version2 = versioner.ReplaceVersion(master, version1); PersistableItem1 restoredItem = (PersistableItem1)persister.Get(master.ID); CollectionAssert.AreEqual(new[] { link1 }, restoredItem.ContentLinks); PersistableItem1 versionItem = (PersistableItem1)versioner.GetVersion(master, version2.VersionIndex); // persister.Get(version2.ID); CollectionAssert.AreEqual(new[] { link2 }, versionItem.ContentLinks); }
public void PublishingDraft_CreatesNewParts_BelowExistingParts() { PersistableItem1 root = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(root); var part = CreateOneItem <PersistablePart1>(0, "part", root); part.ZoneName = "TheZone"; part.AddTo(root); persister.Save(part); var draft = versioner.AddVersion(root, asPreviousVersion: false); var draftPart = CreateOneItem <PersistablePart1>(0, "new part", null); draftPart.ZoneName = "TheZone"; draftPart.AddTo(draft.Children.Single()); var master = versioner.MakeMasterVersion(draft); var addedChild = master.Children.Single().Children.Single(); addedChild.State.ShouldBe(ContentState.Published); addedChild.ID.ShouldNotBe(0); addedChild.VersionOf.HasValue.ShouldBe(false); addedChild.Title.ShouldBe("new part"); }
public void PublishingDraft_ZoneName_And_SortOrder_IsUpdatedFromDraft() { PersistableItem1 root = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(root); var part = CreateOneItem <PersistablePart1>(0, "part", root); part.ZoneName = "TheZone"; part.SortOrder = 333; part.AddTo(root); persister.Save(part); var draft = versioner.AddVersion(root, asPreviousVersion: false); var draftChild = draft.Children.Single(); draftChild.ZoneName = "TheOtherZone"; draftChild.SortOrder = 666; var master = versioner.MakeMasterVersion(draft); var updatedPart = master.Children.Single(); updatedPart.ZoneName.ShouldBe("TheOtherZone"); updatedPart.SortOrder.ShouldBe(666); }
public void PublishingDraft_RemovesRemovedParts_InHierarchy() { PersistableItem1 root = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(root); var part = CreateOneItem <PersistablePart1>(0, "part", root); part.ZoneName = "TheZone"; part.AddTo(root); persister.Save(part); var part2 = CreateOneItem <PersistablePart1>(0, "part", part); part2.ZoneName = "TheZone"; part2.AddTo(part); persister.Save(part2); var draft = versioner.AddVersion(root, asPreviousVersion: false); draft.Children.Clear(); var master = versioner.MakeMasterVersion(draft); master.Children.Count.ShouldBe(0); persister.Get(part.ID).ShouldBe(null); persister.Get(part2.ID).ShouldBe(null); }
public void Save_WithDescendants() { var parent = new PersistableItem1(); persister.Save(parent); var child1 = new PersistableItem1 { Parent = parent }; persister.Save(child1); var child1_1 = new PersistableItem1 { Parent = child1 }; persister.Save(child1_1); var child2 = new PersistableItem1 { Parent = parent }; persister.Save(child2); var child2_1 = new PersistableItem1 { Parent = child2 }; persister.Save(child2_1); persister.Save(parent); Find.EnumerateChildren(parent).Count().ShouldBe(4); }
public void Laziness() { ContentItem root = CreateOneItem <PersistableItem1>(0, "root", null); ContentItem root2 = CreateOneItem <PersistableItem1>(0, "root2", null); for (int i = 0; i < 30; i++) { PersistableItem1 item = CreateOneItem <PersistableItem1>(0, "item", root); } using (persister) { persister.Save(root); persister.Save(root2); } using (persister) { root = persister.Get(root.ID); Debug.WriteLine("Got: " + root + " with Children.Count: " + root.Children.Count); foreach (var child in root.Children) { } root2 = persister.Get(root2.ID); Debug.WriteLine("Got: " + root2 + " with Children.Count: " + root2.Children.Count); foreach (var child in root2.Children) { } } }
public void Save_ChildState() { var item = new PersistableItem1(); persister.Save(item); item.ChildState.ShouldBe(CollectionState.IsEmpty); }
public void AncestralTrail_IsSlash_OnRootPage() { PersistableItem1 item = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(item); Assert.That(item.AncestralTrail, Is.EqualTo("/")); }
public void GetGreatestVersionIndex_WhenNoVersions() { PersistableItem1 master = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(master); versioner.Repository.GetGreatestVersionIndex(master).ShouldBe(0); }
public virtual void CanCreateDatabaseSchema() { CreateDatabaseSchema(); PersistableItem1 testItem = new PersistableItem1(); engine.Persister.Save(testItem); Assert.AreEqual(1, testItem.ID); }
public void AncestralTrail_ContainsParentTrail_OnChildPage_WhenSavedByCascade() { PersistableItem1 root = CreateOneItem <PersistableItem1>(0, "root", null); PersistableItem1 item = CreateOneItem <PersistableItem1>(0, "item", root); persister.Save(root); Assert.That(item.AncestralTrail, Is.EqualTo("/" + root.ID + "/")); }
public override void SetUp() { base.SetUp(); accessor = new LuceneAccesor(new ThreadContext(), new DatabaseSection()); indexer = new LuceneIndexer(accessor, new TextExtractor(new IndexableDefinitionExtractor(definitions))); root = CreateOneItem <PersistableItem1>(1, "The Root Page", null); indexer.Clear(); }
public void GetVersions_IncludesPublishedVersion_WhenItsTheOnlyVersion() { PersistableItem1 item = CreateOneItem <PersistableItem1>(0, "item", null); persister.Save(item); var versions = versioner.GetVersionsOf(item); Assert.That(versions.Count, Is.EqualTo(1)); }
public void AddingVersion_OfDraftItem_SetsStateToDraft(bool isPrevious) { PersistableItem1 master = CreateOneItem <PersistableItem1>(0, "root", null); master.State = ContentState.Draft; persister.Save(master); var version1 = versioner.AddVersion(master, asPreviousVersion: isPrevious); version1.State.ShouldBe(ContentState.Draft); }
public void CreatingVersion_IncreasesVersionIndex() { PersistableItem1 master = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(master); var version1 = versioner.AddVersion(master); master.VersionIndex.ShouldBe(1); version1.VersionIndex.ShouldBe(0); }
public void SavingVersion_CanGiveNewVersion_GreaterIndex() { PersistableItem1 master = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(master); var version1 = versioner.AddVersion(master, asPreviousVersion: false); version1.VersionIndex.ShouldBe(1); master.VersionIndex.ShouldBe(0); }
public void AddingVersion_OfUnpublishedItem_SetsStateOfVersion_AccordingTo_PreviousOrNot(bool isPrevious, ContentState expectedState) { PersistableItem1 master = CreateOneItem <PersistableItem1>(0, "root", null); master.State = ContentState.Unpublished; persister.Save(master); var version1 = versioner.AddVersion(master, asPreviousVersion: isPrevious); version1.State.ShouldBe(expectedState); }
public void AncestralTrail_IsUpdated_WhenItem_IsMoved() { PersistableItem1 root = CreateOneItem <PersistableItem1>(0, "root", null); PersistableItem1 one = CreateOneItem <PersistableItem1>(0, "one", root); PersistableItem1 two = CreateOneItem <PersistableItem1>(0, "two", root); persister.Save(root); persister.Move(two, one); Assert.That(two.AncestralTrail, Is.EqualTo("/" + root.ID + "/" + one.ID + "/")); }
public void AncestralTrail_IsUpdated_WhenItem_IsCopied() { PersistableItem1 root = CreateOneItem <PersistableItem1>(0, "root", null); PersistableItem1 one = CreateOneItem <PersistableItem1>(0, "one", root); PersistableItem1 two = CreateOneItem <PersistableItem1>(0, "two", root); persister.Repository.SaveOrUpdate(root, one, two); ContentItem copiedItem = persister.Copy(two, one); Assert.That(copiedItem.AncestralTrail, Is.EqualTo("/" + root.ID + "/" + one.ID + "/")); }
public virtual void CanDropDatabaseSchema() { CreateDatabaseSchema(); DropDatabaseSchema(); PersistableItem1 testItem = new PersistableItem1(); ExceptionAssert.Throws <Exception>( delegate { engine.Persister.Save(testItem); }); }
public void ReplacingVersions_IncreasesVersionIndex() { PersistableItem1 master = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(master); var version1 = versioner.AddVersion(master); var version2 = versioner.ReplaceVersion(master, version1, storeCurrentVersion: true); version1.VersionIndex.ShouldBe(0); version2.VersionIndex.ShouldBe(1); master.VersionIndex.ShouldBe(2); }
public void Save_WithChildren_ChildState() { var parent = new PersistableItem1(); persister.Save(parent); var child = new PersistableItem1 { Parent = parent }; persister.Save(child); parent.ChildState.ShouldBe(CollectionState.ContainsVisiblePublicPages); }
public void CanSave_Guid() { PersistableItem1 item = CreateOneItem <PersistableItem1>(0, "root", null); PersistableItem1 fromDB = null; item.GuidProperty = Guid.NewGuid(); using (persister) { persister.Save(item); } fromDB = persister.Get <PersistableItem1>(item.ID); Assert.That(fromDB.GuidProperty, Is.EqualTo(item.GuidProperty)); }
public void CanSave_ReadOnlyGuid() { PersistableItem1 item = CreateOneItem <PersistableItem1>(0, "root", null); PersistableItem1 fromDB = null; string guid = item.ReadOnlyGuid; using (persister) { persister.Save(item); } fromDB = persister.Get <PersistableItem1>(item.ID); Assert.That(fromDB.ReadOnlyGuid, Is.EqualTo(guid)); }
public void AncestralTrail_IsUpdated_WhenUsing_VersioningManager() { PersistableItem1 root = CreateOneItem <PersistableItem1>(0, "root", null); PersistableItem1 one = CreateOneItem <PersistableItem1>(0, "one", root); persister.Save(root); N2.Persistence.VersionManager vm = new VersionManager(persister.Repository, finder, new N2.Edit.Workflow.StateChanger(), new N2.Configuration.EditSection()); var version = vm.SaveVersion(one); one.Name += "2"; persister.Save(one); Assert.That(version.AncestralTrail, Is.EqualTo("/")); Assert.That(one.AncestralTrail, Is.EqualTo("/" + root.ID + "/")); }
public override void SetUp() { base.SetUp(); var definitions = TestSupport.SetupDefinitions(typeof(PersistableItem1), typeof(PersistableItem2), typeof(PersistablePart1)); accessor = new LuceneAccesor(new ThreadContext(), new DatabaseSection()); indexer = new LuceneIndexer(accessor, new TextExtractor(new IndexableDefinitionExtractor(definitions))); searcher = new LuceneSearcher(accessor, persister); worker = new AsyncWorker(); asyncIndexer = new AsyncIndexer(indexer, persister, worker, Rhino.Mocks.MockRepository.GenerateStub <IErrorNotifier>(), new DatabaseSection()); tracker = new ContentChangeTracker(asyncIndexer, persister, new N2.Plugin.ConnectionMonitor(), new DatabaseSection()); accessor.LockTimeout = 1L; indexer.Clear(); root = CreateOneItem <PersistableItem1>(1, "The Root Page", null); }
public void IncludedParts_InheritStateFromPage() { PersistableItem1 root = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(root); var part = CreateOneItem <PersistablePart1>(0, "part", root); part.ZoneName = "TheZone"; persister.Save(part); root.State = ContentState.Draft; var version1 = versioner.AddVersion(root, asPreviousVersion: false); var versionPart = version1.Children.Single(); versionPart.State.ShouldBe(ContentState.Draft); }
public void SavingVersion_IncludesParts() { PersistableItem1 root = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(root); var part = CreateOneItem <PersistablePart1>(0, "part", root); part.ZoneName = "TheZone"; persister.Save(part); var version1 = versioner.AddVersion(root, asPreviousVersion: false); var versionPart = version1.Children.Single(); versionPart.Title.ShouldBe("part"); versionPart.VersionOf.ID.ShouldBe(part.ID); }
public void AddingVersionOfPart_AddsVersionOfPage_AndReturnsPart() { PersistableItem1 root = CreateOneItem <PersistableItem1>(0, "root", null); persister.Save(root); var part = CreateOneItem <PersistablePart1>(0, "part", root); part.ZoneName = "TheZone"; part.AddTo(root); persister.Save(part); var draft = versioner.AddVersion(part, asPreviousVersion: false); draft.Name.ShouldBe("part"); draft.ID.ShouldBe(0); part.Parent.Name.ShouldBe("root"); draft.Parent.ID.ShouldBe(0); }
public void Replacing_MasterVersion_WithDraft_RemovesDraftVersion() { PersistableItem1 master = CreateOneItem <PersistableItem1>(0, "root", null); master.State = ContentState.Published; persister.Save(master); var version1 = versioner.AddVersion(master, asPreviousVersion: false); version1.Title += " changes"; var version2 = versioner.ReplaceVersion(master, version1, storeCurrentVersion: true); version2.VersionIndex.ShouldBe(0); version2.Title.ShouldBe("root"); master.VersionIndex.ShouldBe(1); master.Title.ShouldBe("root changes"); versioner.GetVersionsOf(master).Count().ShouldBe(2); }