public void Should_Remove_ContentOptions_From_Content() { var content = TestDataProvider.CreateNewContent(); var contentOptions = new[] { TestDataProvider.CreateNewContentOption(content), TestDataProvider.CreateNewContentOption(content) }; content.ContentOptions = contentOptions; RunActionInTransaction( session => { session.SaveOrUpdate(content); session.Flush(); Guid contentId = content.Id; session.Clear(); session.Delete(content.ContentOptions[0]); session.Flush(); session.Clear(); var dbContent = session.Query <Content>().FetchMany(f => f.ContentOptions).FirstOrDefault(f => f.Id == contentId); Assert.IsNotNull(dbContent); Assert.AreEqual(content, dbContent); Assert.AreEqual(1, dbContent.ContentOptions.Count); }); }
public void Should_Return_Page_Content_Options_Successfully() { RunActionInTransaction(session => { var content = TestDataProvider.CreateNewContent(); var pageContent = TestDataProvider.CreateNewPageContent(content); FillContentWithOptions(content); FillPageContentWithOptions(content, pageContent); session.SaveOrUpdate(pageContent); session.Flush(); session.Clear(); // Create command var unitOfWork = new DefaultUnitOfWork(session); var command = new GetPageContentOptionsCommand(); var repository = new DefaultRepository(unitOfWork); command.UnitOfWork = unitOfWork; command.Repository = repository; command.CmsConfiguration = Container.Resolve <ICmsConfiguration>(); command.OptionService = new DefaultOptionService(repository, new HttpRuntimeCacheService(), command.CmsConfiguration); // Execute command var result = command.Execute(pageContent.Id); // Should return 4 options: 2 with assigned values, 1 without parent option and 1 unassigned Assert.IsNotNull(result); Assert.IsNotNull(result.OptionValues); Assert.AreEqual(result.OptionValues.Count, 5); Assert.IsNotNull(result.OptionValues.FirstOrDefault(o => o.OptionKey == content.ContentOptions[0].Key && o.OptionValue == pageContent.Options[0].Value && o.OptionDefaultValue == content.ContentOptions[0].DefaultValue && !o.UseDefaultValue && !o.CanEditOption)); Assert.IsNotNull(result.OptionValues.FirstOrDefault(o => o.OptionKey == content.ContentOptions[1].Key && o.OptionValue == pageContent.Options[1].Value && o.OptionDefaultValue == content.ContentOptions[1].DefaultValue && !o.UseDefaultValue && !o.CanEditOption)); Assert.IsNotNull(result.OptionValues.FirstOrDefault(o => o.OptionKey == content.ContentOptions[2].Key && o.OptionValue == content.ContentOptions[2].DefaultValue && o.OptionDefaultValue == content.ContentOptions[2].DefaultValue && o.UseDefaultValue && !o.CanEditOption)); Assert.IsNotNull(result.OptionValues.FirstOrDefault(o => o.OptionKey == pageContent.Options[2].Key && o.OptionValue == pageContent.Options[2].Value && o.OptionDefaultValue == null && o.CanEditOption)); Assert.IsNotNull(result.OptionValues.FirstOrDefault(o => o.OptionKey == pageContent.Options[3].Key && o.OptionValue == pageContent.Options[3].Value && o.OptionDefaultValue == null && o.CanEditOption)); }); }
private Content[] CreateFakeContents() { var content1 = TestDataProvider.CreateNewContent(); var content2 = TestDataProvider.CreateNewHtmlContent(); var content3 = TestDataProvider.CreateNewHtmlContentWidget(); var content4 = TestDataProvider.CreateNewServerControlWidget(); content1.Name = "Content_1"; content2.Name = "Content_2"; content3.Name = "Test_1"; content4.Name = "Test_2"; return(new[] { content1, content2, content3, content4 }); }
public void Should_Insert_And_Retrieve_Content_ContentOptions_Successfully() { var content = TestDataProvider.CreateNewContent(); var contentOptions = new[] { TestDataProvider.CreateNewContentOption(content), TestDataProvider.CreateNewContentOption(content) }; content.ContentOptions = contentOptions; SaveEntityAndRunAssertionsInTransaction( content, result => { Assert.AreEqual(content, result); Assert.AreEqual(contentOptions.OrderBy(f => f.Id), result.ContentOptions.OrderBy(f => f.Id)); }); }
public void Should_Return_Page_Content_Options_Successfully() { RunActionInTransaction(session => { var content = TestDataProvider.CreateNewContent(); var pageContent = TestDataProvider.CreateNewPageContent(content); FillContentWithOptions(content); FillPageContentWithOptions(content, pageContent); session.SaveOrUpdate(pageContent); session.Flush(); session.Clear(); // Create command var unitOfWork = new DefaultUnitOfWork(session); var command = new GetPageContentOptionsCommand(); command.UnitOfWork = unitOfWork; command.Repository = new DefaultRepository(unitOfWork); // Execute command var result = command.Execute(pageContent.Id); // Should return 4 options: 2 with assigned values, 1 without parent option and 1 unassigned Assert.IsNotNull(result); Assert.IsNotNull(result.WidgetOptions); Assert.AreEqual(result.WidgetOptions.Count, 4); Assert.IsNotNull(result.WidgetOptions.FirstOrDefault(o => o.OptionKey == content.ContentOptions[0].Key && o.OptionValue == pageContent.Options[0].Value && o.OptionDefaultValue == content.ContentOptions[0].DefaultValue)); Assert.IsNotNull(result.WidgetOptions.FirstOrDefault(o => o.OptionKey == content.ContentOptions[1].Key && o.OptionValue == pageContent.Options[1].Value && o.OptionDefaultValue == content.ContentOptions[1].DefaultValue)); Assert.IsNotNull(result.WidgetOptions.FirstOrDefault(o => o.OptionKey == content.ContentOptions[2].Key && o.OptionValue == null && o.OptionDefaultValue == content.ContentOptions[2].DefaultValue)); Assert.IsNotNull(result.WidgetOptions.FirstOrDefault(o => o.OptionKey == pageContent.Options[2].Key && o.OptionValue == pageContent.Options[2].Value && o.OptionDefaultValue == null)); }); }
public void Should_Save_Page_Content_Options_Successfully() { RunActionInTransaction(session => { // Create page content with options var content = TestDataProvider.CreateNewContent(); var pageContent = TestDataProvider.CreateNewPageContent(content); FillContentWithOptions(content); FillPageContentWithOptions(content, pageContent); session.SaveOrUpdate(pageContent); session.Flush(); session.Clear(); // Random option value var randomOptionValue = TestDataProvider.CreateNewPageContentOption(); // Create request var request = new PageContentOptionsViewModel { OptionValues = new List <OptionValueEditViewModel> { new OptionValueEditViewModel { // Must be updated OptionKey = pageContent.Options[0].Key, OptionValue = content.ContentOptions[0].DefaultValue, UseDefaultValue = false }, new OptionValueEditViewModel { // Must be deleted OptionKey = pageContent.Options[1].Key, OptionValue = null, UseDefaultValue = true }, new OptionValueEditViewModel { // Must be updated OptionKey = pageContent.Options[2].Key, OptionValue = null, UseDefaultValue = false }, new OptionValueEditViewModel { // Must be created OptionValue = randomOptionValue.Value, OptionKey = randomOptionValue.Key, Type = OptionType.Text } }, PageContentId = pageContent.Id }; // Create command var unitOfWork = new DefaultUnitOfWork(session); var repository = new DefaultRepository(unitOfWork); var command = new SavePageContentOptionsCommand(); command.UnitOfWork = unitOfWork; command.Repository = repository; command.OptionService = new DefaultOptionService(repository, new HttpRuntimeCacheService()); var result = command.Execute(request); Assert.IsTrue(result); // Check results: one of page content values must be deleted after save var results = repository .AsQueryable <PageContentOption>(pco => pco.PageContent.Id == pageContent.Id && !pco.IsDeleted && !pco.PageContent.IsDeleted) .ToList(); Assert.AreEqual(results.Count, 3); Assert.IsNotNull(results.FirstOrDefault(pco => { return(pco.Key == pageContent.Options[0].Key && pco.Value == content.ContentOptions[0].DefaultValue); })); Assert.IsNotNull(results.FirstOrDefault(pco => { return(pco.Key == pageContent.Options[2].Key && pco.Value == null); })); Assert.IsNotNull(results.FirstOrDefault(pco => pco.Key == randomOptionValue.Key && pco.Value == randomOptionValue.Value)); }); }
public void Should_Insert_And_Retrieve_Content_Successfully() { var content = TestDataProvider.CreateNewContent(); RunEntityMapTestsInTransaction(content); }
public void Should_Save_Page_Content_Options_Successfully() { RunActionInTransaction(session => { // Create page content with options var content = TestDataProvider.CreateNewContent(); var pageContent = TestDataProvider.CreateNewPageContent(content); FillContentWithOptions(content); FillPageContentWithOptions(content, pageContent); session.SaveOrUpdate(pageContent); session.Flush(); session.Clear(); // Random option value var randomOptionValue = TestDataProvider.CreateNewPageContentOption(); // Create request var request = new PageContentOptionsViewModel { WidgetOptions = new List <PageContentOptionViewModel> { new PageContentOptionViewModel { // Will be deleted because of default value OptionValue = content.ContentOptions[0].DefaultValue, OptionKey = pageContent.Options[0].Key, OptionDefaultValue = content.ContentOptions[0].DefaultValue }, new PageContentOptionViewModel { // Will be deleted because of null value OptionValue = null, OptionKey = pageContent.Options[1].Key }, new PageContentOptionViewModel { OptionValue = pageContent.Options[2].Value, OptionKey = pageContent.Options[2].Key }, new PageContentOptionViewModel { // Random value OptionValue = randomOptionValue.Value, OptionKey = randomOptionValue.Key } }, PageContentId = pageContent.Id }; // Create command var unitOfWork = new DefaultUnitOfWork(session); var repository = new DefaultRepository(unitOfWork); var command = new SavePageContentOptionsCommand(); command.UnitOfWork = unitOfWork; command.Repository = repository; var result = command.Execute(request); Assert.IsTrue(result); // Check results: one of page content values must be deleted after save var results = repository .AsQueryable <PageContentOption>(pco => pco.PageContent.Id == pageContent.Id && !pco.IsDeleted && !pco.PageContent.IsDeleted) .ToList(); Assert.AreEqual(results.Count, 2); Assert.IsNotNull(results.FirstOrDefault(pco => pco.Key == pageContent.Options[2].Key && pco.Value == pageContent.Options[2].Value)); Assert.IsNotNull(results.FirstOrDefault(pco => pco.Key == randomOptionValue.Key && pco.Value == randomOptionValue.Value)); }); }