public void Test_Delete_Reorder() { using (LogGroup logGroup = LogGroup.StartDebug("Testing deletion of sub entities to ensure their position is updated.")) { TestArticle article = CreateStrategy.New <TestArticle>(false).Create <TestArticle>(); article.ID = Guid.NewGuid(); article.Title = "Test Article"; SaveStrategy.New(article, false).Save(article); Collection <TestArticlePage> pages = new Collection <TestArticlePage>(); // Create and save 3 article pages associated with the article for (int i = 0; i < 3; i++) { TestArticlePage page = CreateStrategy.New <TestArticlePage>(false).Create <TestArticlePage>(); page.Article = article; page.Title = "Page " + (i + 1); page.ID = Guid.NewGuid(); page.PageNumber = i + 1; pages.Add(page); SaveStrategy.New(page, false).Save(page); } // Delete the second page (0 based position = 1) DeleteStrategy.New(pages[1], false).Delete(pages[1]); // Load the article from the store TestArticle foundArticle = RetrieveStrategy.New <TestArticle>(false).Retrieve <TestArticle>("ID", article.ID); // Activate the pages on the article ActivateStrategy.New(foundArticle, false).Activate(foundArticle, "Pages"); Assert.IsNotNull(foundArticle.Pages, "Pages property isn't set."); Assert.AreEqual(2, foundArticle.Pages.Length, "Invalid number of pages."); foundArticle.Pages = Collection <TestArticlePage> .Sort(foundArticle.Pages, "PageNumberAscending"); Assert.AreEqual(1, foundArticle.Pages[0].PageNumber, "First page has wrong number."); Assert.AreEqual("Page 1", foundArticle.Pages[0].Title, "First page has wrong title."); Assert.AreEqual(2, foundArticle.Pages[1].PageNumber, "Third page has wrong number (should now be 2 as it's moved up one spot)."); Assert.AreEqual("Page 3", foundArticle.Pages[1].Title, "Third page has wrong title."); // Page 3 should now be at position 1 (ie. second place) } }
public void Test_Create_FromParentID() { TestArticle article = CreateStrategy.New <TestArticle>(false).Create <TestArticle>(); article.ID = Guid.NewGuid(); article.Title = "Test Title"; SaveStrategy.New <TestArticle>(false).Save(article); CreateSubEntityStrategy strategy = (CreateSubEntityStrategy)CreateStrategy.New("TestArticlePage", false); TestArticlePage page = strategy.Create <TestArticlePage>(article.ID, String.Empty); Assert.IsNotNull(page.Article, "The article wasn't assigned to the page."); Assert.AreEqual(article.Title, page.Article.Title, "Article titles don't match."); Assert.AreEqual(1, page.PageNumber, "Invalid page number"); }
public void Test_GetDataStoreName_FromType() { using (LogGroup logGroup = LogGroup.Start("Testing the GetDataStoreName function from a provided type.", NLog.LogLevel.Debug)) { TestArticle e1 = new TestArticle(); e1.ID = Guid.NewGuid(); e1.Title = "Test 1"; TestArticlePage e2 = new TestArticlePage(); e2.ID = Guid.NewGuid(); e2.Title = "Test 2"; //e2.ArticleID = e1.ID; string name = DataUtilities.GetDataStoreName(typeof(TestArticle)); Assert.AreEqual(e1.ShortTypeName, name, "The wrong data store name was returned."); } }
public void Test_Activate_SingleReference() { using (LogGroup logGroup = LogGroup.Start("Testing the activate function with a single reference.", NLog.LogLevel.Debug)) { TestArticle article = new TestArticle(); Guid articleID = article.ID = Guid.NewGuid(); article.Title = "Test"; TestArticlePage page = new TestArticlePage(); Guid pageID = page.ID = Guid.NewGuid(); page.Title = "Test Page"; article.Pages = new TestArticlePage[] { page }; //user.Roles = Collection<TestRole>.Add(user.Roles, role); DataAccess.Data.Saver.Save(page); DataAccess.Data.Saver.Save(article); page = null; article = null; TestArticlePage page2 = DataAccess.Data.Reader.GetEntity <TestArticlePage>("ID", pageID); DataAccess.Data.Activator.Activate(page2, "Article"); Assert.IsNotNull(page2.Article, "The page2.Article property is null."); if (page2.Article != null) { Assert.AreEqual(articleID.ToString(), page2.Article.ID.ToString(), "ID of referenced article after activating doesn't match the original."); } } }
public virtual void Test_Activate_SingleProperty_2References() { using (LogGroup logGroup = LogGroup.Start("Testing the Activate function with 2 references.", NLog.LogLevel.Debug)) { TestArticle article = new TestArticle(); article.ID = Guid.NewGuid(); Guid articleID = article.ID; article.Title = "Test"; TestArticlePage page = new TestArticlePage(); page.ID = Guid.NewGuid(); Guid pageID = page.ID; page.Title = "Test Page"; TestArticlePage page2 = new TestArticlePage(); page2.ID = Guid.NewGuid(); Guid page2ID = page2.ID; page2.Title = "Test Page 2"; article.Pages = new TestArticlePage[] { page, page2 }; //user.Roles = Collection<TestRole>.Add(user.Roles, role); DataAccess.Data.Saver.Save(page); DataAccess.Data.Saver.Save(page2); DataAccess.Data.Saver.Save(article); // TODO: Check if needed //page = null; //page2 = null; //article = null; EntityReferenceCollection references = DataAccess.Data.Referencer.GetReferences(article.GetType().Name, page.GetType().Name); Assert.IsNotNull(references, "references == null"); Assert.AreEqual(2, references.Count, "Invalid number of references found."); TestArticle foundArticle = DataAccess.Data.Reader.GetEntity <TestArticle>("ID", articleID); Assert.IsNotNull(foundArticle, "The foundArticle variable is null."); DataAccess.Data.Activator.Activate(foundArticle, "Pages"); Assert.IsNotNull(foundArticle.Pages, "The article.Pages property is null."); Assert.AreEqual(2, foundArticle.Pages.Length, "article.Pages.Length != 2."); if (foundArticle.Pages != null && foundArticle.Pages.Length == 2) { TestArticlePage foundPage1 = foundArticle.Pages[0]; TestArticlePage foundPage2 = foundArticle.Pages[1]; //if (foundPage2.ID.ToString() == pageID.ToString()) //{ // TestArticlePage tmp = foundPage2; // foundPage2 = foundPage1; // foundPage1 = tmp; //} // Use an array and IndexOf function so the match will work in any order Guid[] pageIDs = new Guid[] { pageID, page2ID }; Assert.IsTrue(Array.IndexOf(pageIDs, foundPage1.ID) > -1, "First found page has the wrong ID."); Assert.IsTrue(Array.IndexOf(pageIDs, foundPage2.ID) > -1, "Second found page has the wrong ID."); //Assert.AreEqual(pageID.ToString() + "---" + page2ID.ToString(), foundPage1.ID.ToString() + "---" + foundPage2.ID.ToString(), "IDs of the reference don't match."); } } }