public void ResolveDimensionsAndDuration_ResolvesDimensionsUsingFileOperationsWhenNecessaryAndFileOperationsAreEnabled(double dummySpecifiedWidth,
                                                                                                                               double dummySpecifiedHeight,
                                                                                                                               double dummySpecifiedDuration,
                                                                                                                               double dummyRetrievedWidth,
                                                                                                                               double dummyRetrievedHeight,
                                                                                                                               double dummyRetrievedDuration,
                                                                                                                               double expectedWidth,
                                                                                                                               double expectedHeight,
                                                                                                                               double expectedDuration,
                                                                                                                               double expectedAspectRatio)
        {
            // Arrange
            const string         dummyLocalAbsolutePath = "dummyLocalAbsolutePath";
            Mock <IVideoService> mockVideoService       = _mockRepository.Create <IVideoService>();

            mockVideoService.Setup(i => i.GetVideoDimensionsAndDuration(dummyLocalAbsolutePath)).Returns((dummyRetrievedWidth, dummyRetrievedHeight, dummyRetrievedDuration));
            FlexiVideoBlockFactory testSubject = CreateFlexiVideoBlockFactory(mockVideoService.Object);

            // Act
            (double resultWidth, double resultHeight, double resultAspectRatio, double resultDuration) = testSubject.
                                                                                                         ResolveDimensionsAndDuration(dummyLocalAbsolutePath, dummySpecifiedWidth, dummySpecifiedHeight, dummySpecifiedDuration);

            // Assert
            _mockRepository.VerifyAll();
            Assert.Equal(expectedWidth, resultWidth);
            Assert.Equal(expectedHeight, resultHeight);
            Assert.Equal(expectedAspectRatio, resultAspectRatio);
            Assert.Equal(expectedDuration, resultDuration);
        }
        public void ResolveDimensionsAndDuration_ResolvesDimensionsWithoutFileOperationsWhenPossibleOrIfFileOperationsAreDisabled(double dummySpecifiedWidth,
                                                                                                                                  double dummySpecifiedHeight,
                                                                                                                                  double dummySpecifiedDuration,
                                                                                                                                  string dummyLocalAbsolutePath,
                                                                                                                                  double expectedWidth,
                                                                                                                                  double expectedHeight,
                                                                                                                                  double expectedAspectRatio,
                                                                                                                                  double expectedDuration)
        {
            // Arrange
            FlexiVideoBlockFactory testSubject = CreateFlexiVideoBlockFactory();

            // Act
            (double resultWidth, double resultHeight, double resultAspectRatio, double resultDuration) = testSubject.ResolveDimensionsAndDuration(dummyLocalAbsolutePath, dummySpecifiedWidth, dummySpecifiedHeight, dummySpecifiedDuration);

            // Assert
            _mockRepository.VerifyAll();
            Assert.Equal(expectedWidth, resultWidth);
            Assert.Equal(expectedHeight, resultHeight);
            Assert.Equal(expectedAspectRatio, resultAspectRatio);
            Assert.Equal(expectedDuration, resultDuration);
        }