public void ShouldReturnErrorBuilderWhenDidntFindBuilderForAlias()
        {
            var builders = BuildersFactory.GetAllBuildersThatApply("I'm Sure there is no builder for that");

            Assert.AreEqual(1, builders.Count);
            Assert.AreEqual(1, builders.Count(x => x is ErrorSectionBuilder));
        }
        public void ShouldntContainErrorBuilderWhenThereIsABuilderForAlias()
        {
            var builders = BuildersFactory.GetAllBuildersThatApply(SectionDocumentTypes.Footer);

            Assert.AreEqual(1, builders.Count);
            Assert.AreEqual(0, builders.Count(x => x is ErrorSectionBuilder));
        }
        public void ShouldReturnOnlyAllBuilderWhichApplyToDoctypeAlias()
        {
            var builders = BuildersFactory.GetAllBuildersThatApply(SectionDocumentTypes.Header);

            Assert.AreEqual(2, builders.Count);
            Assert.AreEqual(1, builders.Count(x => x is HeaderBuilder));
            Assert.AreEqual(1, builders.Count(x => x is FakeBuilder));
        }
        public void ShouldRenderUsingFirstBuilderWhenManyApplyToOneAlias()
        {
            _buildersList.Insert(0, new FakeBuilder());
            var builderFactory   = new BuildersFactory(_buildersList);
            var sectionProviders = new SectionsProvider(builderFactory);

            var sections = sectionProviders.GetListOfSectionsToRender(_mocekdContents);

            Assert.IsTrue(sections.Any(x => x.ViewModel is FakeViewModel));
            Assert.IsFalse(sections.Any(x => x.ViewModel is HeaderViewModel));
        }
        public void SetUp()
        {
            var builders = new List <ISectionBuilder>()
            {
                new ErrorSectionBuilder(),
                new FakeBuilder(),
                new FooterBuilder(null),
                new HeaderBuilder(null)
            };

            BuildersFactory = new BuildersFactory(builders);
        }
        public void ShouldContainErrorViewModelInsteadProperWhenExceptionHappen()
        {
            var builders = _buildersList.Where(x => !x.DeosApply(SectionDocumentTypes.Header)).ToList();

            builders.Add(new FakeBuilderWhichReturnsException());
            var builderFactory   = new BuildersFactory(builders);
            var sectionProviders = new SectionsProvider(builderFactory);
            var sections         = sectionProviders.GetListOfSectionsToRender(_mocekdContents);

            Assert.IsTrue(sections.Any(x => x.ViewModel is SectionErrorViewModel));

            var model          = sections.First(x => x.ViewModel is SectionErrorViewModel).ViewModel;
            var errorViewModel = (SectionErrorViewModel)model;

            Assert.AreEqual("message of exception", errorViewModel.ErrorMsg);
        }
        public void SetUp()
        {
            _buildersList = new List <ISectionBuilder> {
                new HeaderBuilder(new NodeHelper()), new FooterBuilder(null)
            };
            var builderFactory = new BuildersFactory(_buildersList);

            _sectionProvider = new SectionsProvider(builderFactory);

            var mockContentHeader = new PublishedContentMockingHelper();

            mockContentHeader.SetAlias(SectionDocumentTypes.Header);

            var mockContentFooter = new PublishedContentMockingHelper();

            mockContentFooter.SetAlias(SectionDocumentTypes.Footer);

            _mocekdContents = new List <IPublishedContent> {
                mockContentHeader.ContentMock, mockContentFooter.ContentMock
            };
        }
        public void ShouldReturnListOfBuilders()
        {
            var builders = BuildersFactory.GetAllBuildersThatApply(SectionDocumentTypes.Header);

            Assert.AreEqual(2, builders.Count);
        }
        public void ShouldReturnErrorBuilderWhenDidntFindBuilderForAlias()
        {
            var builder = BuildersFactory.GetFirstBuilderThatApply("I'm Sure there is no builder for that");

            Assert.True(builder is ErrorSectionBuilder);
        }
        public void ShouldReturnOnlyOneBuilderWhichApplyToDoctypeAlias()
        {
            var builder = BuildersFactory.GetFirstBuilderThatApply(SectionDocumentTypes.Header);

            Assert.True(builder is FakeBuilder);
        }