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); }
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); }