ContentTypeGroupResponseItem GetItem(ContentTypeGroupDescriptor contentTypeGroup) { var name = contentTypeGroup.Type.GetCustomAttribute <DisplayAttribute>()?.Name ?? contentTypeGroup.Type.Name; string pluralName; if (name.Contains(':') && !contentTypeGroup.Id.Contains(':')) { var nameSplit = name.Split(':'); name = nameSplit.First(); pluralName = nameSplit.Last(); } else { if (name.Length >= 2 && name.StartsWith('I') && char.IsUpper(name[1])) { name = name.Substring(1); } name = Humanizer.Humanize(name); pluralName = Pluralizer.Pluralize(name); } var item = new ContentTypeGroupResponseItem { Id = contentTypeGroup.Id, Name = name, LowerCaseName = name.Substring(0, 1).ToLower() + name.Substring(1), PluralName = pluralName, LowerCasePluralName = pluralName.Substring(0, 1).ToLower() + pluralName.Substring(1), ContentTypes = ContentTypeGroupMatcher.GetContentTypesFor(contentTypeGroup.Id).Select(t => t.Id).ToList().AsReadOnly(), }; return(item); }
public void FindsContentTypes() { var typeA = new ContentTypeDescriptor("ipsum", typeof(ContentTypeA), "dolor"); var typeB = new ContentTypeDescriptor("sit", typeof(ContentTypeB), "amet"); var typeProvider = Mock.Of <IContentTypeProvider>(); Mock.Get(typeProvider).Setup(p => p.GetAll()).Returns(new List <ContentTypeDescriptor> { typeA, typeB }); var groupA = new ContentTypeGroupDescriptor("lorem", typeof(ContentTypeGroupA)); var groupB = new ContentTypeGroupDescriptor("adipiscing", typeof(ContentTypeGroupB)); var groupProvider = Mock.Of <IContentTypeGroupProvider>(); Mock.Get(groupProvider).Setup(p => p.Get("lorem")).Returns(groupA); Mock.Get(groupProvider).Setup(p => p.Get("adipiscing")).Returns(groupB); var sut = new ContentTypeGroupMatcher(typeProvider, groupProvider); Assert.Equal(new List <ContentTypeDescriptor> { typeA }, sut.GetContentTypesFor("lorem")); Assert.Equal(new List <ContentTypeDescriptor> { typeA, typeB }, sut.GetContentTypesFor("adipiscing")); }
public void FindsContentTypeGroups() { var contentTypeA = new ContentTypeDescriptor("ipsum", typeof(ContentTypeA), "dolor"); var contentTypeProvider = Mock.Of <IContentTypeProvider>(); Mock.Get(contentTypeProvider).Setup(p => p.Get("ipsum")).Returns(contentTypeA); var contentTypeGroupA = new ContentTypeGroupDescriptor("lorem", typeof(ContentTypeGroupA)); var contentTypeGroupProvider = Mock.Of <IContentTypeGroupProvider>(); Mock.Get(contentTypeGroupProvider).Setup(p => p.GetAll()).Returns(new List <ContentTypeGroupDescriptor> { contentTypeGroupA }); var result = new ContentTypeGroupMatcher(contentTypeProvider, contentTypeGroupProvider).GetContentTypeGroupsFor("ipsum"); Assert.Equal(new List <ContentTypeGroupDescriptor> { contentTypeGroupA }, result); }