示例#1
0
        public void GetManagementContentTypeSnippetElements_Returns()
        {
            var expectedElementId  = Guid.NewGuid();
            var expectedElement2Id = Guid.NewGuid();
            var snippetCodename    = "snippet_codename";

            var snippetElement = TestHelper.GenerateElementMetadataBase(Guid.NewGuid(), snippetCodename, ElementMetadataType.ContentTypeSnippet);

            var snippets = new List <ContentTypeSnippetModel>
            {
                new ContentTypeSnippetModel
                {
                    Codename = snippetCodename,
                    Elements = new List <ElementMetadataBase>
                    {
                        TestHelper.GenerateElementMetadataBase(expectedElementId, $"{snippetCodename}_el"),
                        TestHelper.GenerateElementMetadataBase(expectedElement2Id, $"{snippetCodename}_el2", ElementMetadataType.Number)
                    }
                }
            };

            var result = ManagementElementHelper.GetManagementContentTypeSnippetElements(snippetElement, snippets).ToList();

            Assert.NotNull(result);
            Assert.Equal(2, result.Count);
            Assert.Contains(result, el => el.Id == expectedElementId);
            Assert.Contains(result, el => el.Id == expectedElement2Id);
        }
示例#2
0
        internal ClassCodeGenerator GetClassCodeGenerator(ContentTypeModel contentType, IEnumerable <ContentTypeSnippetModel> managementSnippets)
        {
            var classDefinition = new ClassDefinition(contentType.Codename);

            foreach (var element in contentType.Elements)
            {
                try
                {
                    if (element.Type != ElementMetadataType.ContentTypeSnippet)
                    {
                        AddProperty(Property.FromContentTypeElement(element), ref classDefinition);
                    }
                    else
                    {
                        var snippetElements = ManagementElementHelper.GetManagementContentTypeSnippetElements(element, managementSnippets);
                        foreach (var snippetElement in snippetElements)
                        {
                            AddProperty(Property.FromContentTypeElement(snippetElement), ref classDefinition);
                        }
                    }
                }
                catch (Exception e)
                {
                    WriteConsoleErrorMessage(e, element.Codename, element.Type.ToString(), classDefinition.ClassName);
                }
            }

            var classFilename = GetFileClassName(classDefinition.ClassName);

            return(ClassCodeGeneratorFactory.CreateClassCodeGenerator(Options, classDefinition, classFilename));
        }
示例#3
0
        public void GetManagementContentTypeSnippetElements_NoSnippets_Throws()
        {
            var contentTypeElementCodename = "codename";

            var snippetElement = TestHelper.GenerateElementMetadataBase(Guid.NewGuid(), contentTypeElementCodename, ElementMetadataType.ContentTypeSnippet);

            Assert.Throws <ArgumentException>(() => ManagementElementHelper.GetManagementContentTypeSnippetElements(snippetElement, new List <ContentTypeSnippetModel>()));
        }
示例#4
0
        public void GetManagementContentTypeSnippetElements_NotManagementContentTypeSnippetElement_ReturnsNull()
        {
            var snippetCodename = "codename";

            var element = TestHelper.GenerateElementMetadataBase(Guid.NewGuid(), snippetCodename);

            var result = ManagementElementHelper.GetManagementContentTypeSnippetElements(element, new List <ContentTypeSnippetModel>());

            Assert.Null(result);
        }
示例#5
0
        public void GetManagementContentTypeSnippetElements_NoSnippetElements_Throws()
        {
            var contentTypeElementCodename = "codename";

            var snippets = new List <ContentTypeSnippetModel>
            {
                new ContentTypeSnippetModel
                {
                    Codename = contentTypeElementCodename,
                    Elements = new List <ElementMetadataBase>()
                }
            };

            var snippetElement = TestHelper.GenerateElementMetadataBase(Guid.NewGuid(), contentTypeElementCodename, ElementMetadataType.ContentTypeSnippet);

            var result = ManagementElementHelper.GetManagementContentTypeSnippetElements(snippetElement, snippets);

            Assert.NotNull(result);
            Assert.Empty(result);
        }
示例#6
0
        public void GetManagementContentTypeSnippetElements_NoMatchingSnippet_Throws()
        {
            var contentTypeElementCodename = "codename";
            var snippetCodename            = "other_snippet_codename";

            var snippetElement = TestHelper.GenerateElementMetadataBase(Guid.NewGuid(), contentTypeElementCodename, ElementMetadataType.ContentTypeSnippet);

            var snippets = new List <ContentTypeSnippetModel>
            {
                new ContentTypeSnippetModel
                {
                    Codename = snippetCodename,
                    Elements = new List <ElementMetadataBase>
                    {
                        TestHelper.GenerateElementMetadataBase(Guid.NewGuid(), $"{snippetCodename}el"),
                        TestHelper.GenerateElementMetadataBase(Guid.NewGuid(), $"{snippetCodename}el2", ElementMetadataType.Number)
                    }
                }
            };

            Assert.Throws <ArgumentException>(() => ManagementElementHelper.GetManagementContentTypeSnippetElements(snippetElement, snippets));
        }
示例#7
0
 public void GetManagementContentTypeSnippetElements_ManagementContentTypeIsNull_ThrowsException()
 {
     Assert.Throws <ArgumentNullException>(() =>
                                           ManagementElementHelper.GetManagementContentTypeSnippetElements(null, new List <ContentTypeSnippetModel>()));
 }
示例#8
0
 public void GetManagementContentTypeSnippetElements_ManagementSnippetsAreNull_ThrowsException()
 {
     Assert.Throws <ArgumentNullException>(() =>
                                           ManagementElementHelper.GetManagementContentTypeSnippetElements(new TextElementMetadataModel(), null));
 }