Esempio n. 1
0
        public void CloneItem()
        {
            // TODO: moveme
            Definitions.PersistableItem root = CreateRoot("root", "root item");
            root.BoolProperty     = false;
            root.DateTimeProperty = new DateTime(1978, 12, 02);
            root.DoubleProperty   = 3.1412;
            root.IntProperty      = 42;
            root.LinkProperty     = root;
            root.ObjectProperty   = new string[] { "one", "two", "three" };
            root.StringProperty   = "dida";
            engine.Persister.Save(root);

            Definitions.PersistableItem clonedRoot = (Definitions.PersistableItem)root.Clone(true);
            Assert.AreNotEqual(root.ID, clonedRoot.ID);

            engine.Persister.Save(clonedRoot);
            Assert.AreEqual(root.BoolProperty, clonedRoot.BoolProperty);
            Assert.AreEqual(root.DateTimeProperty, clonedRoot.DateTimeProperty);
            Assert.AreEqual(root.DoubleProperty, clonedRoot.DoubleProperty);
            Assert.AreEqual(root.IntProperty, clonedRoot.IntProperty);
            Assert.AreEqual(root.LinkProperty, clonedRoot.LinkProperty);
            Assert.AreEqual(root.ObjectProperty, clonedRoot.ObjectProperty);
            Assert.AreEqual(root.StringProperty, clonedRoot.StringProperty);
            Assert.AreEqual(root.Name, clonedRoot.Name);
            Assert.AreEqual(root.Title, clonedRoot.Title);
            Assert.AreNotEqual(root.ID, clonedRoot.ID);

            foreach (N2.Details.ContentDetail detail in root.Details)
            {
                Assert.IsNotNull(clonedRoot[detail.Name]);
                Assert.AreNotSame(detail, clonedRoot[detail.Name]);
            }
        }
Esempio n. 2
0
		public virtual void CanCreateDatabaseSchema()
		{
			CreateDatabaseSchema();
			PersistableItem testItem = new PersistableItem();
			engine.Persister.Save(testItem);
			Assert.AreEqual(1, testItem.ID);
		}
Esempio n. 3
0
        public void InsertRootNode()
        {
            Assert.IsNotNull(engine);
            Assert.IsNotNull(engine.Persister);

            Definitions.PersistableItem item = CreateRoot("root", "root item");
        }
Esempio n. 4
0
		public override void SetUp()
		{
			base.SetUp();
			root = CreateAndSaveItem("root", "root", null);
			engine.Host.DefaultSite.RootItemID = root.ID;
			item = CreateAndSaveItem("item", "item", root);
			engine.Host.DefaultSite.StartPageID = item.ID;
			builder = new InterfaceBuilder(engine);
		}
		public override void SetUp()
		{
			base.SetUp();

			root = CreateOneItem<PersistableItem>(1, "The Root Page", null);
			indexer = new IndexerClient(new Configuration.DatabaseSection());
			searcher = new SearcherClient(persister, new Configuration.DatabaseSection());
			extractor = new TextExtractor();
		}
        protected Definitions.PersistableItem CreateAndSaveItem(string name, string title, ContentItem parent)
        {
            Definitions.PersistableItem item = CreateOneItem <Definitions.PersistableItem>(0, "nada", parent);
            item.Title = title;
            item.Name  = name;
            engine.Persister.Save(item);

            return(item);
        }
Esempio n. 7
0
		public void Save_WithChildren_ChildState()
		{
			var parent = new PersistableItem();
			persister.Save(parent);

			var child = new PersistableItem { Parent = parent };
			persister.Save(child);

			parent.ChildState.ShouldBe(CollectionState.ContainsVisiblePublicPages);
		}
Esempio n. 8
0
		public virtual void CanDropDatabaseSchema()
		{
			CreateDatabaseSchema();
			DropDatabaseSchema();

			PersistableItem testItem = new PersistableItem();
			ExceptionAssert.Throws<Exception>(
				delegate
					{
						engine.Persister.Save(testItem);
					});
		}
Esempio n. 9
0
		public void Save_WithChildren_DoubleSave()
		{
			var parent = new PersistableItem();
			persister.Save(parent);

			var child = new PersistableItem { Parent = parent };
			persister.Save(child);

			parent.Children.Count.ShouldBe(1);

			persister.Save(parent);

			parent.Children.Count.ShouldBe(1);
		}
Esempio n. 10
0
		public override void SetUp()
		{
			base.SetUp();

			var definitions = TestSupport.SetupDefinitions(typeof(PersistableItem), typeof(PersistableItem2), typeof(PersistablePart));

			accessor = new LuceneAccesor(new ThreadContext(), new DatabaseSection());
			indexer = new ContentIndexer(new LuceneIndexer(accessor), new TextExtractor(new IndexableDefinitionExtractor(definitions)));
			searcher = new LuceneContentSearcher(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<PersistableItem>(1, "The Root Page", null);
		}
Esempio n. 11
0
		public void Save_WithDescendants()
		{
			var parent = new PersistableItem();
			persister.Save(parent);

			var child1 = new PersistableItem { Parent = parent };
			persister.Save(child1);

			var child1_1 = new PersistableItem { Parent = child1 };
			persister.Save(child1_1);

			var child2 = new PersistableItem { Parent = parent };
			persister.Save(child2);

			var child2_1 = new PersistableItem { Parent = child2 };
			persister.Save(child2_1);

			persister.Save(parent);

			Find.EnumerateChildren(parent).Count().ShouldBe(4);
		}
Esempio n. 12
0
		public void Save_ChildState()
		{
			var item = new PersistableItem();
			persister.Save(item);
			item.ChildState.ShouldBe(CollectionState.IsEmpty);
		}
Esempio n. 13
0
 protected Definitions.PersistableItem CreateRoot(string name, string title)
 {
     Definitions.PersistableItem item = CreateAndSaveItem(name, title, null);
     return(item);
 }
Esempio n. 14
0
		private void Create(out PersistableItem item, out PersistableItem item2)
		{
			item = CreateOneItem<PersistableItem>(1, "Another", null);
			item.Published = DateTime.Now.AddSeconds(-10);
			item.Created = DateTime.Now.AddSeconds(-10);
			item.Updated = DateTime.Now.AddSeconds(-10);
			item.Expires = DateTime.Now.AddSeconds(10);
			item.SavedBy = "admin";
			item.SortOrder = 0;
			item.State = ContentState.Draft;
			indexer.Update(item);

			item2 = CreateOneItem<PersistableItem>(2, "Before", null);
			item2.Published = DateTime.Now;
			item2.Created = DateTime.Now;
			item2.Updated = DateTime.Now;
			item2.Expires = DateTime.Now.AddSeconds(20);
			item2.SavedBy = "bob";
			item2.SortOrder = 1;
			item2.State = ContentState.Published;
			indexer.Update(item2);
		}
Esempio n. 15
0
		public override void SetUp()
		{
			base.SetUp();
			
			root = CreateOneItem<PersistableItem>(1, "The Root Page", null);
		}
Esempio n. 16
0
		//[TestCase(10)]
		//[TestCase(100)]
		//[TestCase(1000)]
		//[TestCase(10000)]
		public void Save_ManyAssociations_InSession(int iterations)
		{
			for (int i = 0; i < iterations; i++)
			{
				var parent = new PersistableItem();
				persister.Save(parent);

				var child1 = new PersistableItem { Parent = parent };
				child1["parent"] = parent;
				persister.Save(child1);

				var child1_1 = new PersistableItem { Parent = child1 };
				child1_1["parent"] = child1_1;
				persister.Save(child1_1);

				var child2 = new PersistableItem { Parent = parent };
				child2["sibling"] = child1;
				persister.Save(child2);

				var child2_1 = new PersistableItem { Parent = child2 };
				child2_1["cousin"] = child1_1;
				persister.Save(child2_1);

				child1["child"] = child1_1;
				child1["sibling"] = child2;
				persister.Save(child1);

				child1_1["cousin"] = child2_1;
				persister.Save(child1_1);

				child2["child"] = child2_1;
				persister.Save(child2);

				Find.EnumerateChildren(parent).Count().ShouldBe(4);
			}
		}
Esempio n. 17
0
        private void CreateStartPageBelow(ContentItem root)
        {
            startPage = CreateOneItem<PersistableItem>(0, "start page", root);
            startPage.ZoneName = "AZone";
            startPage.SortOrder = 34;
            startPage.Visible = true;
            startPage.State = ContentState.Published;
            startPage.IntProperty = 33;
            startPage.DateTimeProperty = new DateTime(2013, 04, 07);
            startPage.EnumProperty = AppDomainManagerInitializationOptions.RegisterWithHost;
            startPage["IntDetail"] = 45;
            startPage["DoubleDetail"] = 56.66;
            startPage["BoolDetail"] = true;
            startPage["DateDetail"] = new DateTime(2000, 01, 01);
            startPage["StringDetail"] = "actually another string";
            startPage["StringDetail2"] = "just a string";
            startPage["ObjectDetail"] = new string[] { "two", "three", "four" };
            startPage["ItemDetail"] = root;

            engine.Persister.Save(startPage);
        }
Esempio n. 18
0
		public void MultipleSessions()
		{
			for (int i = 0; i < 1; i++)
			{
				var parent = new PersistableItem();
				persister.Save(parent);

				persister.Dispose();
				parent = persister.Get<PersistableItem>(parent.ID);

				var child1 = new PersistableItem { Parent = parent };
				child1["parent"] = parent;
				persister.Save(child1);

				var child1_1 = new PersistableItem { Parent = child1 };
				child1_1["parent"] = child1_1;
				persister.Save(child1_1);

				persister.Dispose();

				parent = persister.Get<PersistableItem>(parent.ID);
				child1 = persister.Get<PersistableItem>(child1.ID);
				child1_1 = persister.Get<PersistableItem>(child1_1.ID);

				var child2 = new PersistableItem { Parent = parent };
				child2.ZoneName = "TheZone";
				child2["sibling"] = child1;
				persister.Save(child2);

				var child2_1 = new PersistableItem { Parent = child2 };
				child2_1.ZoneName = "TheZone";
				child2_1["cousin"] = child1_1;
				persister.Save(child2_1);

				persister.Dispose();

				parent = persister.Get<PersistableItem>(parent.ID);
				child1 = persister.Get<PersistableItem>(child1.ID);
				child1_1 = persister.Get<PersistableItem>(child1_1.ID);
				child2 = persister.Get<PersistableItem>(child2.ID);
				child2_1 = persister.Get<PersistableItem>(child2_1.ID);

				child1["child"] = child1_1;
				child1["sibling"] = child2;
				persister.Save(child1);

				child1_1["cousin"] = child2_1;
				persister.Save(child1_1);

				child2["child"] = child2_1;
				persister.Save(child2);

				persister.Dispose();

				persister.Get(parent.ID).Children.FindPages().Count().ShouldBe(1);
				persister.Get(parent.ID).Children.FindParts().Count().ShouldBe(1);

				persister.Get(parent.ID).Children.Select(c => c.ID).Contains(child1.ID).ShouldBe(true);
				persister.Get(parent.ID).Children.Select(c => c.ID).Contains(child2.ID).ShouldBe(true);

				persister.Get(child1.ID)["child"].ShouldBe(persister.Get(child1_1.ID));
			}
		}
Esempio n. 19
0
        private void CreateRootItem()
        {
            rootItem = CreateOneItem<PersistableItem>(0, "root", null);
            rootItem.Created = new DateTime(2007, 06, 01);
            rootItem.Published = new DateTime(2007, 06, 02);
            rootItem.Expires = new DateTime(2017, 06, 02);
            rootItem.ZoneName = "ZaZone";
            rootItem.SortOrder = 12;
            rootItem.Visible = true;
            rootItem.State = ContentState.Published;
            rootItem["IntDetail"] = 32;
            rootItem["DoubleDetail"] = 32.22;
            rootItem["BoolDetail"] = true;
            rootItem["DateDetail"] = new DateTime(1998, 12, 31);
            rootItem["StringDetail"] = "a string in a version";
            rootItem["StringDetail2"] = "just a string";
            rootItem["ObjectDetail"] = new string[] { "zero", "one", "two" };

            engine.Persister.Save(rootItem);
        }