public void WriteBlock_WritesBlock(FlexiPictureBlock dummyFlexiPictureBlock,
                                           string expectedResult)
        {
            // Arrange
            var dummyStringWriter = new StringWriter();
            var dummyHtmlRenderer = new HtmlRenderer(dummyStringWriter);
            ExposedFlexiPictureBlockRenderer testSubject = CreateExposedFlexiPictureBlockRenderer();

            // Act
            testSubject.ExposedWriteBlock(dummyHtmlRenderer, dummyFlexiPictureBlock);
            string result = dummyStringWriter.ToString();

            // Assert
            Assert.Equal(expectedResult, result, ignoreLineEndingDifferences: true);
        }
        public void WriteBlock_OnlyWritesAltIfEnableHtmlForBlockIsFalse()
        {
            // Arrange
            const string      dummyAlt = "dummyAlt";
            FlexiPictureBlock dummyFlexiPictureBlock = CreateFlexiPictureBlock(alt: dummyAlt);
            var dummyStringWriter = new StringWriter();
            var dummyHtmlRenderer = new HtmlRenderer(dummyStringWriter)
            {
                EnableHtmlForBlock = false
            };
            ExposedFlexiPictureBlockRenderer testSubject = CreateExposedFlexiPictureBlockRenderer();

            // Act
            testSubject.ExposedWriteBlock(dummyHtmlRenderer, dummyFlexiPictureBlock);
            string result = dummyStringWriter.ToString();

            // Assert
            Assert.Equal($"{dummyAlt}\n", result, ignoreLineEndingDifferences: true);
        }
示例#3
0
        public void Create_CreatesFlexiPictureBlock()
        {
            // Arrange
            const int          dummyColumn              = 3;
            const int          dummyLine                = 5;
            const double       dummyWidth               = 123;
            const double       dummyResolvedWidth       = 515;
            const double       dummyHeight              = 321;
            const double       dummyResolvedHeight      = 356;
            const double       dummyResolvedAspectRatio = 968;
            var                dummySpan                = new SourceSpan(1, 5);
            const string       dummyBlockName           = "dummyBlockName";
            const string       dummyResolvedBlockName   = "dummyResolvedBlockName";
            const string       dummySrc                          = "dummySrc";
            const string       dummyFileName                     = "dummyFileName";
            const string       dummyAlt                          = "dummyAlt";
            const bool         dummyLazy                         = false;
            const string       dummyExitFullscreenIcon           = "dummyExitFullscreenIcon";
            const string       dummyErrorIcon                    = "dummyErrorIcon";
            const string       dummySpinner                      = "dummySpinner";
            const string       dummyLocalAbsolutePath            = "dummyLocalAbsolutePath";
            const bool         dummyEnableFileOperations         = false;
            const bool         dummyResolvedEnableFileOperations = true;
            const string       dummyLocalMediaDirectory          = "dummyLocalMediaDirectory";
            var                dummyAttributes                   = new ReadOnlyDictionary <string, string>(new Dictionary <string, string>());
            Mock <BlockParser> dummyBlockParser                  = _mockRepository.Create <BlockParser>();
            var                dummyProxyJsonBlock               = new ProxyJsonBlock(null, dummyBlockParser.Object)
            {
                Line   = dummyLine,
                Column = dummyColumn,
                Span   = dummySpan
            };
            BlockProcessor dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor();
            Mock <IFlexiPictureBlockOptions> mockFlexiPictureBlockOptions = _mockRepository.Create <IFlexiPictureBlockOptions>();

            mockFlexiPictureBlockOptions.Setup(i => i.BlockName).Returns(dummyBlockName);
            mockFlexiPictureBlockOptions.Setup(i => i.Src).Returns(dummySrc);
            mockFlexiPictureBlockOptions.Setup(i => i.Alt).Returns(dummyAlt);
            mockFlexiPictureBlockOptions.Setup(i => i.Lazy).Returns(dummyLazy);
            mockFlexiPictureBlockOptions.Setup(i => i.ExitFullscreenIcon).Returns(dummyExitFullscreenIcon);
            mockFlexiPictureBlockOptions.Setup(i => i.ErrorIcon).Returns(dummyErrorIcon);
            mockFlexiPictureBlockOptions.Setup(i => i.Spinner).Returns(dummySpinner);
            mockFlexiPictureBlockOptions.Setup(i => i.Width).Returns(dummyWidth);
            mockFlexiPictureBlockOptions.Setup(i => i.Height).Returns(dummyHeight);
            mockFlexiPictureBlockOptions.Setup(i => i.EnableFileOperations).Returns(dummyEnableFileOperations);
            mockFlexiPictureBlockOptions.Setup(i => i.Attributes).Returns(dummyAttributes);
            Mock <IFlexiPictureBlocksExtensionOptions> mockFlexiPictureBlocksExtensionOptions = _mockRepository.Create <IFlexiPictureBlocksExtensionOptions>();

            mockFlexiPictureBlocksExtensionOptions.Setup(f => f.LocalMediaDirectory).Returns(dummyLocalMediaDirectory);
            Mock <IOptionsService <IFlexiPictureBlockOptions, IFlexiPictureBlocksExtensionOptions> > mockOptionsService = _mockRepository.
                                                                                                                          Create <IOptionsService <IFlexiPictureBlockOptions, IFlexiPictureBlocksExtensionOptions> >();

            mockOptionsService.Setup(o => o.CreateOptions(dummyBlockProcessor, dummyProxyJsonBlock)).Returns((mockFlexiPictureBlockOptions.Object, mockFlexiPictureBlocksExtensionOptions.Object));
            Mock <FlexiPictureBlockFactory> mockTestSubject = CreateMockFlexiPictureBlockFactory(optionsService: mockOptionsService.Object);

            mockTestSubject.CallBase = true;
            mockTestSubject.Setup(t => t.ResolveBlockName(dummyBlockName)).Returns(dummyResolvedBlockName);
            mockTestSubject.Protected().Setup <string>("ValidateSrcAndResolveFileName", mockFlexiPictureBlockOptions.Object).Returns(dummyFileName);
            mockTestSubject.Setup(t => t.ResolveEnableFileOperations(dummyEnableFileOperations, dummyLocalMediaDirectory, dummyWidth, dummyHeight)).Returns(dummyResolvedEnableFileOperations);
            mockTestSubject.Protected().Setup <string>("ResolveLocalAbsolutePath", false, dummyResolvedEnableFileOperations, dummyFileName, mockFlexiPictureBlocksExtensionOptions.Object).Returns(dummyLocalAbsolutePath);
            mockTestSubject.Setup(t => t.ResolveDimensions(dummyLocalAbsolutePath, dummyWidth, dummyHeight)).Returns((dummyResolvedWidth, dummyResolvedHeight, dummyResolvedAspectRatio));

            // Act
            FlexiPictureBlock result = mockTestSubject.Object.Create(dummyProxyJsonBlock, dummyBlockProcessor);

            // Assert
            _mockRepository.VerifyAll();
            Assert.Equal(dummyResolvedBlockName, result.BlockName);
            Assert.Equal(dummySrc, result.Src);
            Assert.Equal(dummyAlt, result.Alt);
            Assert.Equal(dummyLazy, result.Lazy);
            Assert.Equal(dummyResolvedWidth, result.Width);
            Assert.Equal(dummyResolvedHeight, result.Height);
            Assert.Equal(dummyResolvedAspectRatio, result.AspectRatio);
            Assert.Equal(dummyExitFullscreenIcon, result.ExitFullscreenIcon);
            Assert.Equal(dummyErrorIcon, result.ErrorIcon);
            Assert.Equal(dummySpinner, result.Spinner);
            Assert.Equal(dummyAttributes, result.Attributes);
            Assert.Same(dummyBlockParser.Object, result.Parser);
            Assert.Equal(dummyColumn, result.Column);
            Assert.Equal(dummyLine, result.Line);
            Assert.Equal(dummySpan, result.Span);
        }
 public void ExposedWriteBlock(HtmlRenderer htmlRenderer, FlexiPictureBlock flexiPictureBlock)
 {
     WriteBlock(htmlRenderer, flexiPictureBlock);
 }