public void Can_Perform_Add_On_ContentTypeRepository_After_Model_Mapping() { // Arrange IScopeProvider provider = ScopeProvider; using (IScope scope = provider.CreateScope()) { ContentTypeRepository repository = ContentTypeRepository; // Act var contentType = (IContentType)ContentTypeBuilder.CreateSimpleContentType2("test", "Test", propertyGroupAlias: "testGroup", propertyGroupName: "testGroup"); Assert.AreEqual(4, contentType.PropertyTypes.Count()); // remove all templates - since they are not saved, they would break the (!) mapping code contentType.AllowedTemplates = new ITemplate[0]; // there is NO mapping from display to contentType, but only from save // to contentType, so if we want to test, let's to it properly! DocumentTypeDisplay display = Mapper.Map <DocumentTypeDisplay>(contentType); DocumentTypeSave save = MapToContentTypeSave(display); IContentType mapped = Mapper.Map <IContentType>(save); Assert.AreEqual(4, mapped.PropertyTypes.Count()); repository.Save(mapped); Assert.AreEqual(4, mapped.PropertyTypes.Count()); // re-get contentType = repository.Get(mapped.Id); Assert.AreEqual(4, contentType.PropertyTypes.Count()); // Assert Assert.That(contentType.HasIdentity, Is.True); Assert.That(contentType.PropertyGroups.All(x => x.HasIdentity), Is.True); Assert.That(contentType.PropertyTypes.All(x => x.HasIdentity), Is.True); Assert.That(contentType.Path.Contains(","), Is.True); Assert.That(contentType.SortOrder, Is.GreaterThan(0)); Assert.That(contentType.PropertyGroups.ElementAt(0).Name == "testGroup", Is.True); int groupId = contentType.PropertyGroups.ElementAt(0).Id; IPropertyType[] propertyTypes = contentType.PropertyTypes.ToArray(); Assert.AreEqual("gen", propertyTypes[0].Alias); // just to be sure Assert.IsNull(propertyTypes[0].PropertyGroupId); Assert.IsTrue(propertyTypes.Skip(1).All(x => x.PropertyGroupId.Value == groupId)); Assert.That(propertyTypes.Single(x => x.Alias == "title").LabelOnTop, Is.True); } }