public void Test_React() { TestArticle article = CreateStrategy.New <TestArticle>(false).Create <TestArticle>(); article.ID = Guid.NewGuid(); article.Title = "Test Article"; MockSaveTestArticleStrategy strategy = MockSaveTestArticleStrategy.New(false); strategy.Save(article); Assert.IsTrue((bool)StateAccess.State.Session["MockSaveTestArticleReaction_Reacted"], "The reaction flag wasn't set to true."); }
/// <summary> /// Creates a new sub entity and assigns the parent entity specified in the query strings. /// Note: Either the parent ID or parent unique key need to be provided, not both. /// </summary> /// <param name="parentID">The ID of the parent entity.</param> /// <param name="uniqueKey">The unique key of the parent entity.</param> /// <returns>The newly created sub entity.</returns> public IEntity Create(Guid parentID, string parentUniqueKey) { IEntity entity = null; using (LogGroup logGroup = LogGroup.Start("Creating a new sub entity.", NLog.LogLevel.Debug)) { CreateSubEntityStrategy createStrategy = (CreateSubEntityStrategy)CreateStrategy.New(Command.TypeName, Container.RequireAuthorisation); entity = createStrategy.Create(parentID, parentUniqueKey); ExecuteCreate(entity); } return(entity); }
public void Test_Save() { TestArticle article = CreateStrategy.New <TestArticle>(false).Create <TestArticle>(); article.ID = Guid.NewGuid(); StrategyInfo info = StrategyState.Strategies["Save", "IEntity"]; ISaveStrategy strategy = SaveStrategy.New <TestArticle>(false); strategy.Save(article); TestArticle foundArticle = Data.DataAccess.Data.Reader.GetEntity <TestArticle>("ID", article.ID); Assert.IsNotNull(foundArticle); }
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_React() { IUser author = new User(); author.ID = Guid.NewGuid(); AuthenticationState.User = (User)author; MockAuthoredEntity entity = CreateStrategy.New <MockAuthoredEntity>(false).Create <MockAuthoredEntity>(); IUser foundAuthor = entity.Author; Assert.IsNotNull(foundAuthor, "No author assigned."); Assert.AreEqual(author.ID.ToString(), foundAuthor.ID.ToString(), "IDs didn't match."); }
/// <summary> /// Begins the create process. /// </summary> public virtual IEntity Create() { IEntity entity = null; using (LogGroup logGroup = LogGroup.StartDebug("Creating a new entity.")) { if (EnsureAuthorised()) { entity = CreateStrategy.New(Command.TypeName).Create(); ExecuteCreate(entity); } } return(entity); }
public void Test_Create_Parent() { MockProjection projection = new MockProjection(); projection.RequireAuthorisation = false; projection.Command = new CreateComandInfo(typeof(TestArticlePage).Name); TestArticle article = CreateStrategy.New <TestArticle>(false).Create <TestArticle>(); article.ID = Guid.NewGuid(); article.Title = "Test title"; SaveStrategy.New <TestArticle>(false).Save(article); CreateController controller = CreateController.New(projection); Assert.IsTrue(controller is CreateSubEntityController, "Invalid controller type: " + controller.GetType().ToString()); CreateSubEntityController createSubEntityController = (CreateSubEntityController)controller; ISubEntity subEntity = (ISubEntity)createSubEntityController.Create(article.ID, String.Empty); Assert.IsNotNull(subEntity, "No sub entity returned."); Assert.IsTrue((subEntity is TestArticlePage), "Wrong type returned: " + subEntity.GetType().ToString()); Assert.IsNotNull(subEntity.Parent, "No parent assigned to sub entity."); Assert.AreEqual(article.ID.ToString(), subEntity.Parent.ID.ToString(), "Parent ID doesn't match expected."); Assert.AreEqual(1, subEntity.Number, "Sub entity has wrong number."); SaveStrategy.New(subEntity, false).Save(subEntity); ISubEntity subEntity2 = (ISubEntity)createSubEntityController.Create(Guid.Empty, article.UniqueKey); Assert.IsNotNull(subEntity2, "No sub entity returned."); Assert.IsTrue((subEntity2 is TestArticlePage), "Wrong type returned: " + subEntity.GetType().ToString()); Assert.IsNotNull(subEntity2.Parent, "No parent assigned to sub entity."); Assert.AreEqual(article.ID.ToString(), subEntity2.Parent.ID.ToString(), "Parent ID doesn't match expected."); Assert.AreEqual(2, subEntity2.Number, "Sub entity has wrong number."); }
public void Test_Update_AutoActivateReferences() { // Create the mock entities TestUser user = CreateStrategy.New <TestUser>(false).Create <TestUser>(); user.ID = Guid.NewGuid(); user.FirstName = "Test"; user.LastName = "User"; TestRole role = CreateStrategy.New <TestRole>(false).Create <TestRole>(); role.ID = Guid.NewGuid(); role.Name = "Test Role"; // Assign the user to the role user.Roles = new TestRole[] { role }; // Save the entities SaveStrategy.New(role, false).Save(role); SaveStrategy.New(user, false).Save(user); // Retrieve the mock user from the data store TestUser foundUser = RetrieveStrategy.New <TestUser>(false).Retrieve <TestUser>("ID", user.ID); // Change a standard property value foundUser.FirstName = "Test2"; // Update WITHOUT having activated the user manually // This update should automatically activate the user entity before updating and // should therefore persist the references UpdateStrategy.New(foundUser, false).Update(foundUser); // Retrieve the mock user again TestUser foundUser2 = RetrieveStrategy.New <TestUser>(false).Retrieve <TestUser>("ID", user.ID); // Manually activate the user foundUser2.Activate(); // Assert that the referenced roles are found on the user which indicates // that the update strategy did automatically activate the entity and persist // the references Assert.IsNotNull(foundUser2.Roles, "Roles property is null."); Assert.AreEqual(1, foundUser2.Roles.Length, "Invalid number of roles assigned to user."); }
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_Update() { TestArticle article = CreateStrategy.New <TestArticle>(false).Create <TestArticle>(); article.ID = Guid.NewGuid(); article.Title = "Mock Title"; Data.DataAccess.Data.Saver.Save(article); string newTitle = "Updated"; article.Title = newTitle; IUpdateStrategy strategy = UpdateStrategy.New <TestArticle>(false); strategy.Update(article); TestArticle foundArticle = Data.DataAccess.Data.Reader.GetEntity <TestArticle>("ID", article.ID); Assert.IsNotNull(foundArticle); Assert.AreEqual(newTitle, foundArticle.Title, "Title wasn't updated."); }
public void Test_Update_InactiveEntityCausesException() { // Create the mock entity TestUser user = CreateStrategy.New <TestUser>(false).Create <TestUser>(); user.ID = Guid.NewGuid(); user.FirstName = "Test"; user.LastName = "User"; // Save the entity SaveStrategy.New(user, false).Save(user); // Change a standard property value user.FirstName = "Test2"; // Set AutoActivate to false otherwise it'll auto activate and won't be tested properly user.AutoActivate = false; // Set IsActivated to false user.IsActivated = false; // Update the inactive entity UpdateStrategy.New(user, false).Update(user); }
public void Test_New() { ICreateStrategy strategy = CreateStrategy.New("TestArticlePage", false); Assert.IsTrue(strategy is CreateSubEntityStrategy, "Wrong strategy type returned."); }