コード例 #1
0
        public void TestIsParserForInValidDataType()
        {
            // arrange
            var dataTypeDefinition = new DataTypeDefinition("foo");

            var parser = new RjpMultiUrlPickerParser();

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

            // verify
            Assert.IsFalse(result);
        }
コード例 #2
0
        public void TestIsParserForNewDataType()
        {
            // arrange
            var dataTypeDefinition = new DataTypeDefinition("Umbraco.MultiUrlPicker");

            var parser = new RjpMultiUrlPickerParser();

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

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

            var contentId = 1072;
            var mediaId   = 1092;

            string propValue = $@"[
                          {{
                            ""id"": ""{contentId}"",
                            ""name"": ""Extend"",
                            ""url"": ""/extend/"",
                            ""icon"": ""icon-stamp""
                          }},
                          {{
                            ""id"": {mediaId},
                            ""name"": ""Doc-Type-Grid-Editor---Developers-Guide-v1.1.pdf"",
                            ""url"": ""/media/1057/doc-type-grid-editor-developers-guide-v11.pdf"",
                            ""isMedia"": true,
                            ""icon"": ""icon-document""
                          }},
                          {{
                            ""name"": ""http://www.google.com"",
                            ""url"": ""http://www.google.com"",
                            ""icon"": ""icon-link""
                          }},
                          {{
                            ""id"": null,
                            ""name"": ""Doc-Type-Grid-Editor---Developers-Guide-v1.1.pdf"",
                            ""url"": ""/media/1057/doc-type-grid-editor-developers-guide-v11.pdf"",
                            ""isMedia"": true,
                            ""icon"": ""icon-document""
                          }}
                        ]";

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

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

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

            Assert.IsTrue(entities.Exists(x => x.LinkedEntityType == LinkedEntityType.Document && x.Id == contentId));
            Assert.IsTrue(entities.Exists(x => x.LinkedEntityType == LinkedEntityType.Media && x.Id == mediaId));
        }
コード例 #4
0
        public void TestGetLinkedEntitiesWithEmptyValue()
        {
            // arrange
            var parser = new RjpMultiUrlPickerParser();

            object propValue = null;

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

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

            Assert.AreEqual(0, entities.Count());
        }
コード例 #5
0
        public void TestGetLinkedEntitiesWithUdiValues()
        {
            // arrange
            var cacheProviderMock = new Mock <ICacheProvider>();

            cacheProviderMock.Setup(x => x.GetCacheItem(It.IsAny <string>(), It.IsAny <Func <object> >()))
            .Returns((string k, Func <object> action) => action());

            var contentKey = "633927e3e97e4769a9a00e563d0867c8";
            var mediaKey   = "ee44da039a9546788fdfa76ae40d1581";

            var contentGuid = Guid.Parse(contentKey);
            var mediaGuid   = Guid.Parse(mediaKey);

            var contentId = 1072;
            var mediaId   = 1092;

            string propValue = $@"[
                          {{
                            ""udi"": ""umb://document/{contentKey}"",
                            ""name"": ""Extend"",
                            ""url"": ""/extend/""
                          }},
                          {{
                            ""udi"": ""umb://media/{mediaKey}"",
                            ""name"": ""Doc-Type-Grid-Editor---Developers-Guide-v1.1.pdf"",
                            ""url"": ""/media/1057/doc-type-grid-editor-developers-guide-v11.pdf""
                          }},
                          {{
                            ""name"": ""http://www.google.com"",
                            ""url"": ""http://www.google.com""
                          }}
                        ]";

            var contentServiceMock = new Mock <IContentService>();
            var mediaServiceMock   = new Mock <IMediaService>();

            var contentMock = new Mock <IContent>();

            contentMock.SetupGet(x => x.Id).Returns(contentId);

            var mediaMock = new Mock <IMedia>();

            mediaMock.SetupGet(x => x.Id).Returns(mediaId);

            contentServiceMock.Setup(x => x.GetById(contentGuid)).Returns(contentMock.Object);
            mediaServiceMock.Setup(x => x.GetById(mediaGuid)).Returns(mediaMock.Object);

            var parser = new RjpMultiUrlPickerParser(contentServiceMock.Object, mediaServiceMock.Object, cacheProviderMock.Object);

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

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

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

            Assert.IsTrue(entities.Exists(x => x.LinkedEntityType == LinkedEntityType.Document && x.Id == contentId));
            Assert.IsTrue(entities.Exists(x => x.LinkedEntityType == LinkedEntityType.Media && x.Id == mediaId));
        }