public void WriteBlock_WritesBlock(FlexiVideoBlock dummyFlexiVideoBlock, string expectedResult) { // Arrange var dummyStringWriter = new StringWriter(); var dummyHtmlRenderer = new HtmlRenderer(dummyStringWriter); ExposedFlexiVideoBlockRenderer testSubject = CreateExposedFlexiVideoBlockRenderer(); // Act testSubject.ExposedWriteBlock(dummyHtmlRenderer, dummyFlexiVideoBlock); string result = dummyStringWriter.ToString(); // Assert Assert.Equal(expectedResult, result, ignoreLineEndingDifferences: true); }
public void WriteBlock_WritesNothingIfEnableHtmlForBlockIsFalse() { // Arrange FlexiVideoBlock dummyFlexiVideoBlock = CreateFlexiVideoBlock(); var dummyStringWriter = new StringWriter(); var dummyHtmlRenderer = new HtmlRenderer(dummyStringWriter) { EnableHtmlForBlock = false }; ExposedFlexiVideoBlockRenderer testSubject = CreateExposedFlexiVideoBlockRenderer(); // Act testSubject.ExposedWriteBlock(dummyHtmlRenderer, dummyFlexiVideoBlock); string result = dummyStringWriter.ToString(); // Assert Assert.Equal(string.Empty, result, ignoreLineEndingDifferences: true); }
public void Create_CreatesFlexiVideoBlock() { // Arrange const int dummyColumn = 3; const int dummyLine = 5; var dummySpan = new SourceSpan(1, 5); const string dummyBlockName = "dummyBlockName"; const string dummyResolvedBlockName = "dummyResolvedBlockName"; const string dummySrc = "dummySrc"; const string dummyType = "dummyType"; const double dummyWidth = 123; const double dummyResolvedWidth = 515; const double dummyHeight = 321; const double dummyResolvedHeight = 356; const double dummyDuration = 123.456; const double dummyResolvedDuration = 321.654; const bool dummyGeneratePoster = true; const string dummyPoster = "dummyPoster"; const string dummyResolvedPoster = "dummyResolvedPoster"; const bool dummyEnableFileOperations = false; const bool dummyResolvedEnableFileOperations = true; const string dummySpinner = "dummySpinner"; const string dummyPlayIcon = "dummyPlayIcon"; const string dummyPauseIcon = "dummyPauseIcon"; const string dummyFullscreenIcon = "dummyFullscreenIcon"; const string dummyExitFullscreenIcon = "dummyExitFullscreenIcon"; const string dummyErrorIcon = "dummyErrorIcon"; var dummyAttributes = new ReadOnlyDictionary <string, string>(new Dictionary <string, string>()); const string dummyLocalMediaDirectory = "dummyLocalMediaDirectory"; var dummyMimeTypes = new ReadOnlyDictionary <string, string>(new Dictionary <string, string>()); const string dummyFileName = "dummyFileName"; const string dummyLocalAbsolutePath = "dummyLocalAbsolutePath"; const double dummyAspectRatio = 968; Mock <BlockParser> dummyBlockParser = _mockRepository.Create <BlockParser>(); var dummyProxyJsonBlock = new ProxyJsonBlock(null, dummyBlockParser.Object) { Line = dummyLine, Column = dummyColumn, Span = dummySpan }; BlockProcessor dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor(); Mock <IFlexiVideoBlockOptions> mockFlexiVideoBlockOptions = _mockRepository.Create <IFlexiVideoBlockOptions>(); mockFlexiVideoBlockOptions.Setup(i => i.BlockName).Returns(dummyBlockName); mockFlexiVideoBlockOptions.Setup(i => i.Src).Returns(dummySrc); mockFlexiVideoBlockOptions.Setup(i => i.Type).Returns(dummyType); mockFlexiVideoBlockOptions.Setup(i => i.Width).Returns(dummyWidth); mockFlexiVideoBlockOptions.Setup(i => i.Height).Returns(dummyHeight); mockFlexiVideoBlockOptions.Setup(i => i.Duration).Returns(dummyDuration); mockFlexiVideoBlockOptions.Setup(i => i.GeneratePoster).Returns(dummyGeneratePoster); mockFlexiVideoBlockOptions.Setup(i => i.Poster).Returns(dummyPoster); mockFlexiVideoBlockOptions.Setup(i => i.EnableFileOperations).Returns(dummyEnableFileOperations); mockFlexiVideoBlockOptions.Setup(i => i.Spinner).Returns(dummySpinner); mockFlexiVideoBlockOptions.Setup(i => i.PlayIcon).Returns(dummyPlayIcon); mockFlexiVideoBlockOptions.Setup(i => i.PauseIcon).Returns(dummyPauseIcon); mockFlexiVideoBlockOptions.Setup(i => i.FullscreenIcon).Returns(dummyFullscreenIcon); mockFlexiVideoBlockOptions.Setup(i => i.ExitFullscreenIcon).Returns(dummyExitFullscreenIcon); mockFlexiVideoBlockOptions.Setup(i => i.ErrorIcon).Returns(dummyErrorIcon); mockFlexiVideoBlockOptions.Setup(i => i.Attributes).Returns(dummyAttributes); Mock <IFlexiVideoBlocksExtensionOptions> mockFlexiVideoBlocksExtensionOptions = _mockRepository.Create <IFlexiVideoBlocksExtensionOptions>(); mockFlexiVideoBlocksExtensionOptions.Setup(f => f.LocalMediaDirectory).Returns(dummyLocalMediaDirectory); mockFlexiVideoBlocksExtensionOptions.Setup(f => f.MimeTypes).Returns(dummyMimeTypes); Mock <IOptionsService <IFlexiVideoBlockOptions, IFlexiVideoBlocksExtensionOptions> > mockOptionsService = _mockRepository. Create <IOptionsService <IFlexiVideoBlockOptions, IFlexiVideoBlocksExtensionOptions> >(); mockOptionsService.Setup(o => o.CreateOptions(dummyBlockProcessor, dummyProxyJsonBlock)).Returns((mockFlexiVideoBlockOptions.Object, mockFlexiVideoBlocksExtensionOptions.Object)); Mock <FlexiVideoBlockFactory> mockTestSubject = CreateMockFlexiVideoBlockFactory(optionsService: mockOptionsService.Object); mockTestSubject.CallBase = true; mockTestSubject.Setup(t => t.ResolveBlockName(dummyBlockName)).Returns(dummyResolvedBlockName); mockTestSubject.Protected().Setup <string>("ValidateSrcAndResolveFileName", mockFlexiVideoBlockOptions.Object).Returns(dummyFileName); mockTestSubject.Setup(t => t.ResolveType(dummyFileName, dummyType, dummyMimeTypes)).Returns(dummyType); mockTestSubject. Setup(t => t.ResolveEnableFileOperations(dummyEnableFileOperations, dummyLocalMediaDirectory, dummyGeneratePoster, dummyPoster, dummyWidth, dummyHeight, dummyDuration)). Returns(dummyResolvedEnableFileOperations); mockTestSubject.Protected().Setup <string>("ResolveLocalAbsolutePath", false, dummyResolvedEnableFileOperations, dummyFileName, mockFlexiVideoBlocksExtensionOptions.Object).Returns(dummyLocalAbsolutePath); mockTestSubject. Setup(t => t.ResolveDimensionsAndDuration(dummyLocalAbsolutePath, dummyWidth, dummyHeight, dummyDuration)). Returns((dummyResolvedWidth, dummyResolvedHeight, dummyAspectRatio, dummyResolvedDuration)); mockTestSubject.Setup(t => t.ResolvePoster(dummyLocalAbsolutePath, dummySrc, dummyPoster, dummyGeneratePoster)).Returns(dummyResolvedPoster); // Act FlexiVideoBlock result = mockTestSubject.Object.Create(dummyProxyJsonBlock, dummyBlockProcessor); // Assert _mockRepository.VerifyAll(); Assert.Equal(dummyResolvedBlockName, result.BlockName); Assert.Equal(dummySrc, result.Src); Assert.Equal(dummyType, result.Type); Assert.Equal(dummyResolvedPoster, result.Poster); Assert.Equal(dummyResolvedWidth, result.Width); Assert.Equal(dummyResolvedHeight, result.Height); Assert.Equal(dummyAspectRatio, result.AspectRatio); Assert.Equal(dummyResolvedDuration, result.Duration); Assert.Equal(dummySpinner, result.Spinner); Assert.Equal(dummyPlayIcon, result.PlayIcon); Assert.Equal(dummyPauseIcon, result.PauseIcon); Assert.Equal(dummyFullscreenIcon, result.FullscreenIcon); Assert.Equal(dummyExitFullscreenIcon, result.ExitFullscreenIcon); Assert.Equal(dummyErrorIcon, result.ErrorIcon); 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, FlexiVideoBlock flexiVideoBlock) { WriteBlock(htmlRenderer, flexiVideoBlock); }