Fix ContentTypeServiceTests (but, why???)

This commit is contained in:
Stephan
2018-12-11 14:02:54 +01:00
parent b19f9c8114
commit 0dff7680fd

View File

@@ -148,7 +148,7 @@ namespace Umbraco.Tests.Services
//change the content type to be invariant, we will also update the name here to detect the copy changes
doc.SetCultureName("Hello2", "en-US");
ServiceContext.ContentService.Save(doc);
contentType.Variations = ContentVariation.Nothing;
contentType.Variations = ContentVariation.Nothing;
ServiceContext.ContentTypeService.Save(contentType);
doc = ServiceContext.ContentService.GetById(doc.Id); //re-get
@@ -372,7 +372,7 @@ namespace Umbraco.Tests.Services
doc2 = ServiceContext.ContentService.GetById(doc2.Id); //re-get
//this will be null because the doc type was changed back to variant but it's property types don't get changed back
Assert.IsNull(doc.GetValue("title", "en-US"));
Assert.IsNull(doc.GetValue("title", "en-US"));
Assert.IsNull(doc2.GetValue("title", "en-US"));
}
@@ -1714,50 +1714,65 @@ namespace Umbraco.Tests.Services
// Arrange
var service = ServiceContext.ContentTypeService;
// create 'page' content type with a 'Content_' group
var page = MockedContentTypes.CreateSimpleContentType("page", "Page", null, false, "Content_");
Assert.IsTrue(page.PropertyGroups.Contains("Content_"));
Assert.AreEqual(3, page.PropertyTypes.Count());
service.Save(page);
// create 'contentPage' content type as a child of 'page'
var contentPage = MockedContentTypes.CreateSimpleContentType("contentPage", "Content Page", page, true);
service.Save(contentPage);
var composition = MockedContentTypes.CreateMetaContentType();
composition.AddPropertyGroup("Content");
service.Save(composition);
//Adding Meta-composition to child doc type
contentPage.AddContentType(composition);
Assert.AreEqual(3, contentPage.PropertyTypes.Count());
service.Save(contentPage);
// Act
var propertyTypeOne = new PropertyType(Constants.PropertyEditors.Aliases.TextBox, ValueStorageType.Ntext, "testTextbox")
// add 'Content' group to 'meta' content type
var meta = MockedContentTypes.CreateMetaContentType();
meta.AddPropertyGroup("Content");
Assert.AreEqual(2, meta.PropertyTypes.Count());
service.Save(meta);
// add 'meta' content type to 'contentPage' composition
contentPage.AddContentType(meta);
service.Save(contentPage);
// add property 'prop1' to 'contentPage' group 'Content_'
var prop1 = new PropertyType(Constants.PropertyEditors.Aliases.TextBox, ValueStorageType.Ntext, "testTextbox")
{
Name = "Test Textbox", Description = "", Mandatory = false, SortOrder = 1, DataTypeId = -88
};
var firstOneAdded = contentPage.AddPropertyType(propertyTypeOne, "Content_");
var propertyTypeTwo = new PropertyType(Constants.PropertyEditors.Aliases.TextBox, ValueStorageType.Ntext, "anotherTextbox")
var prop1Added = contentPage.AddPropertyType(prop1, "Content_");
Assert.IsTrue(prop1Added);
// add property 'prop2' to 'contentPage' group 'Content'
var prop2 = new PropertyType(Constants.PropertyEditors.Aliases.TextBox, ValueStorageType.Ntext, "anotherTextbox")
{
Name = "Another Test Textbox", Description = "", Mandatory = false, SortOrder = 1, DataTypeId = -88
};
var secondOneAdded = contentPage.AddPropertyType(propertyTypeTwo, "Content");
var prop2Added = contentPage.AddPropertyType(prop2, "Content");
Assert.IsTrue(prop2Added);
// save 'contentPage' content type
service.Save(contentPage);
Assert.That(page.PropertyGroups.Contains("Content_"), Is.True);
var propertyGroup = page.PropertyGroups["Content_"];
page.PropertyGroups.Add(new PropertyGroup(true) { Id = propertyGroup.Id, Name = "ContentTab", SortOrder = 0});
var group = page.PropertyGroups["Content_"];
group.Name = "ContentTab"; // rename the group
service.Save(page);
Assert.AreEqual(3, page.PropertyTypes.Count());
// Assert
Assert.That(firstOneAdded, Is.True);
Assert.That(secondOneAdded, Is.True);
// get 'contentPage' content type again
var contentPageAgain = service.Get("contentPage");
Assert.IsNotNull(contentPageAgain);
var contentType = service.Get("contentPage");
Assert.That(contentType, Is.Not.Null);
// assert that 'Content_' group is still there because we don't propagate renames
var findGroup = contentPageAgain.CompositionPropertyGroups.FirstOrDefault(x => x.Name == "Content_");
Assert.IsNotNull(findGroup);
var compositionPropertyGroups = contentType.CompositionPropertyGroups;
// now it is still 1, because we don't propagate renames anymore
Assert.That(compositionPropertyGroups.Count(x => x.Name.Equals("Content_")), Is.EqualTo(1));
var propertyTypeCount = contentType.PropertyTypes.Count();
var compPropertyTypeCount = contentType.CompositionPropertyTypes.Count();
// count all property types (local and composed)
var propertyTypeCount = contentPageAgain.PropertyTypes.Count();
Assert.That(propertyTypeCount, Is.EqualTo(5));
// count composed property types
var compPropertyTypeCount = contentPageAgain.CompositionPropertyTypes.Count();
Assert.That(compPropertyTypeCount, Is.EqualTo(10));
}