コード例 #1
0
        public void When_Value_Is_Set_GetRelatedEntities_Return_List_With_Related_Entities()
        {
            // arrange
            var contentUdi = @"[[
   {
      ""key"":""69d6cf63-f0e5-463d-9441-e1b4ad6fb25e"",
      ""name"":""Item 1"",
      ""ncContentTypeAlias"":""nestedItem"",
      ""text"":""<p>asdfasfa as <a data-udi=\""umb://document/3cce2545e3ac44ecbf55a52cc5965db3\"" href=\""/{localLink:umb://document/3cce2545e3ac44ecbf55a52cc5965db3}\"" title=\""About Us\"">asd </a>asd as </p>"",
      ""callToAction"":""[{\""name\"":\""Products\"",\""udi\"":\""umb://document/ec4aafcc0c254f25a8fe705bfae1d324\""}]""
   },
   {
      ""key"":""ac61e2d2-d8e4-418d-aa91-99ead3df3f8d"",
      ""name"":""Item 2"",
      ""ncContentTypeAlias"":""nestedItem"",
      ""text"":""<p>asdfasdf a as </p>"",
      ""callToAction"":""[{\""name\"":\""Umbraco Campari Meeting Room\"",\""udi\"":\""umb://media/662af6ca411a4c93a6c722c4845698e7\""}]""
   }
]]";

            var parser = new NestedContentParser();

            // act
            var result = parser.GetRelatedEntities(contentUdi).ToList();

            // assert
            Assert.IsNotNull(result);
            Assert.That(result.Count == 3);
            Assert.That(result.Count(x => x.RelationType == RelationTypes.DocumentToDocument) == 2);
            Assert.That(result.Count(x => x.RelationType == RelationTypes.DocumentToMedia) == 1);

            Assert.That(result.Exists(x => x.RelatedEntityUdi.ToString() == "umb://document/3cce2545e3ac44ecbf55a52cc5965db3" && x.RelationType == RelationTypes.DocumentToDocument));
            Assert.That(result.Exists(x => x.RelatedEntityUdi.ToString() == "umb://document/ec4aafcc0c254f25a8fe705bfae1d324" && x.RelationType == RelationTypes.DocumentToDocument));
            Assert.That(result.Exists(x => x.RelatedEntityUdi.ToString() == "umb://media/662af6ca411a4c93a6c722c4845698e7" && x.RelationType == RelationTypes.DocumentToMedia));
        }
コード例 #2
0
        public void When_EditorAlias_Is_Correct_IsParserFor_Should_Return_True()
        {
            // arrange
            var parser = new NestedContentParser();

            // act
            var result = parser.IsParserFor(Constants.PropertyEditors.Aliases.NestedContent);

            // assert
            Assert.IsTrue(result);
        }
コード例 #3
0
        public void When_Value_Is_Not_Set_GetRelatedEntities_Return_Empty_List()
        {
            // arrange
            var parser = new NestedContentParser();

            // act
            var result = parser.GetRelatedEntities(null).ToList();

            // assert
            Assert.IsNotNull(result);
            Assert.That(result.Count == 0);
        }
コード例 #4
0
        public void TestIsParserForInValidDataType()
        {
            // arrange
            var dataTypeDefinition = new DataTypeDefinition("foo");

            var parser = new NestedContentParser();

            // act
            var result = parser.IsParserFor(dataTypeDefinition);

            // verify
            Assert.IsFalse(result);
        }
コード例 #5
0
        public void TestIsParserForValidDataType()
        {
            // arrange
            var dataTypeDefinition = new DataTypeDefinition("Our.Umbraco.NestedContent");

            var parser = new NestedContentParser();

            // act
            var result = parser.IsParserFor(dataTypeDefinition);

            // verify
            Assert.IsTrue(result);
        }
コード例 #6
0
        public void TestGetLinkedEntitiesWithEmptyValue()
        {
            // arrange
            var parser = new NestedContentParser();

            object propValue = null;

            // act
            var result = parser.GetLinkedEntities(propValue);

            // verify
            Assert.IsNotNull(result);
            var entities = result.ToList();

            Assert.AreEqual(0, entities.Count());
        }
コード例 #7
0
        public void TestGetLinkedEntitiesWithValue()
        {
            // arrange
            var contentTypeServiceMock = new Mock <IContentTypeService>();
            var dataTypeServiceMock    = new Mock <IDataTypeService>();

            var contentPickerDataTypeDefinition = new DataTypeDefinition(global::Umbraco.Core.Constants.PropertyEditors.ContentPickerAlias)
            {
                Id = 1
            };

            var mediaPickerDataTypeDefinition = new DataTypeDefinition(global::Umbraco.Core.Constants.PropertyEditors.MediaPickerAlias)
            {
                Id = 2
            };

            var ncContentPickerContentType = new Mock <IContentType>();

            ncContentPickerContentType.SetupGet(x => x.CompositionPropertyTypes)
            .Returns(new List <PropertyType> {
                new PropertyType(contentPickerDataTypeDefinition, "picker")
            });

            var ncMediaPickerContentType = new Mock <IContentType>();

            ncMediaPickerContentType.SetupGet(x => x.CompositionPropertyTypes)
            .Returns(new List <PropertyType> {
                new PropertyType(mediaPickerDataTypeDefinition, "picker")
            });

            contentTypeServiceMock.Setup(x => x.GetContentType("NCContentPicker")).Returns(ncContentPickerContentType.Object);
            contentTypeServiceMock.Setup(x => x.GetContentType("NCMediaPicker")).Returns(ncMediaPickerContentType.Object);

            dataTypeServiceMock.Setup(x => x.GetDataTypeDefinitionById(contentPickerDataTypeDefinition.Id))
            .Returns(contentPickerDataTypeDefinition);
            dataTypeServiceMock.Setup(x => x.GetDataTypeDefinitionById(mediaPickerDataTypeDefinition.Id))
            .Returns(mediaPickerDataTypeDefinition);


            var parser = new NestedContentParser(contentTypeServiceMock.Object, dataTypeServiceMock.Object);

            string propValue = "[{\"name\":\"Item 1\",\"ncContentTypeAlias\":\"NCContentPicker\",\"picker\":\"1072\"},{\"name\":\"Item 2\",\"ncContentTypeAlias\":\"NCMediaPicker\",\"picker\":\"1081\"},{\"name\":\"Item 1\",\"ncContentTypeAlias\":\"NCContentPicker\",\"picker\":\"1073\"}]";

            // act
            var result = parser.GetLinkedEntities(propValue);

            // verify
            contentTypeServiceMock.Verify(x => x.GetContentType(It.IsAny <string>()), Times.Exactly(2));

            dataTypeServiceMock.Verify(x => x.GetDataTypeDefinitionById(contentPickerDataTypeDefinition.Id), Times.Once);
            dataTypeServiceMock.Verify(x => x.GetDataTypeDefinitionById(mediaPickerDataTypeDefinition.Id), Times.Once);

            Assert.IsNotNull(result);
            var entities = result.ToList();

            Assert.AreEqual(3, entities.Count());

            Assert.IsTrue(entities.Exists(x => x.LinkedEntityType == LinkedEntityType.Document && x.Id == 1072));
            Assert.IsTrue(entities.Exists(x => x.LinkedEntityType == LinkedEntityType.Media && x.Id == 1081));
            Assert.IsTrue(entities.Exists(x => x.LinkedEntityType == LinkedEntityType.Document && x.Id == 1073));
        }