예제 #1
0
        public void Collect_WhenMultipleLanguagesExist_ShouldAddPageToContentMapForEachLanguage()
        {
            // Arrange
            var contentMap = new Mock <IContentMap>();
            var pageInfo   = new ComposerPageInformation {
                Page = new ComposerPage {
                    Guid = Guid.NewGuid()
                }
            };
            var subject = CreateSubject(contentMap.Object, CreateSerializer(pageInfo));

            var master = new RawContent {
                Property = new[] { new RawProperty {
                                       Name = ComposerProperties.Page
                                   } }
            };
            var language1 = new RawContent {
                Property = new[] { new RawProperty {
                                       Name = ComposerProperties.Page
                                   } }
            };
            var language2 = new RawContent {
                Property = new[] { new RawProperty {
                                       Name = ComposerProperties.Page
                                   } }
            };

            // Act
            subject.Collect(TestUtil.TransferData(master, language1, language2));

            // Assert
            contentMap.Verify(x => x.AddPage(pageInfo.Page), Times.Exactly(3));
        }
예제 #2
0
        private static ComposerSerializer CreateSerializer(ComposerPageInformation info)
        {
            var serializer = new Mock <ComposerSerializer>();

            serializer.Setup(x => x.Deserialize <ComposerPageInformation>(It.IsAny <string>())).Returns(info);
            return(serializer.Object);
        }
예제 #3
0
 private static ContentMapCollector CreateSubject(IContentMap contentMap, ComposerSerializer serializer)
 {
     contentMap = contentMap ?? new Mock <IContentMap>().Object;
     if (serializer == null)
     {
         var pageInfo = new ComposerPageInformation {
             Page = new ComposerPage {
                 Guid = Guid.NewGuid()
             }
         };
         serializer = CreateSerializer(pageInfo);
     }
     return(new ContentMapCollector(contentMap, serializer));
 }
예제 #4
0
        public void Collect_WhenContentIsComposerPage_ShouldAddPageToContentMap()
        {
            // Arrange
            var contentMap = new Mock <IContentMap>();
            var pageInfo   = new ComposerPageInformation {
                Page = new ComposerPage {
                    Guid = Guid.NewGuid()
                }
            };
            var subject = CreateSubject(contentMap.Object, CreateSerializer(pageInfo));

            var content = new RawContent {
                Property = new[] { new RawProperty {
                                       Name = ComposerProperties.Page
                                   } }
            };

            // Act
            subject.Collect(TestUtil.TransferData(content));

            // Assert
            contentMap.Verify(x => x.AddPage(pageInfo.Page), Times.Once());
        }
예제 #5
0
        public void TryMap_ShouldSetNameFromPageName()
        {
            // Arrange
            var contentMap = new Mock <IContentMap>();
            var pageInfo   = new ComposerPageInformation {
                Page = new ComposerPage {
                    Guid = Guid.NewGuid()
                }
            };
            var subject = CreateSubject(contentMap.Object, CreateSerializer(pageInfo));

            var pageName = "TestName";
            var content  = new RawContent
            {
                Property = new[]
                {
                    new RawProperty {
                        Name = ComposerProperties.Page
                    },
                    new RawProperty {
                        Name = MetaDataProperties.PageName, Value = pageName
                    }
                }
            };

            // Act
            IComposerPage result;

            if (!subject.TryMap(content, out result))
            {
                Assert.Fail();
            }

            // Assert
            Assert.AreEqual(pageName, result.Name);
        }