Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 4
0
 public void ExposedWriteBlock(HtmlRenderer htmlRenderer, FlexiVideoBlock flexiVideoBlock)
 {
     WriteBlock(htmlRenderer, flexiVideoBlock);
 }