public void MediaServicesV3AudioCopyVideoMbrNoBFramesTransformCanCreateCustomTransformTest()
        {
            // Arrange
            var transform = new MediaServicesV3AudioCopyVideoMbrNoBFramesTransform(TransformName);

            // Act
            var output = transform.Output;

            // Assert
            Xunit.Assert.NotNull(output);
        }
        public void MediaServicesV3AudioCopyVideoMbrNoBFramesTransformCopyAudioCodecTest()
        {
            // Arrange
            var transform = new MediaServicesV3AudioCopyVideoMbrNoBFramesTransform(TransformName);

            // Act
            var output = transform.Output;
            var preset = output.TransformOutputs.SingleOrDefault().Preset as StandardEncoderPreset;

            // Assert
            Xunit.Assert.NotNull(preset);
            Xunit.Assert.Contains(preset.Codecs, p => p is CopyAudio);
        }
        public void MediaServicesV3AudioCopyVideoMbrNoBFramesTransformH264LayerLabelTests(string label, int expected)
        {
            // Arrange
            var transform = new MediaServicesV3AudioCopyVideoMbrNoBFramesTransform(TransformName);

            // Act
            var output = transform.Output;
            var preset = output.TransformOutputs.SingleOrDefault().Preset as StandardEncoderPreset;
            var video  = preset.Codecs.Where(p => p is H264Video).SingleOrDefault() as H264Video;
            var layers = video.Layers.Where(l => l.Label == label);

            // Assert
            Xunit.Assert.NotNull(preset);
            Xunit.Assert.NotNull(video);
            Xunit.Assert.Equal(expected: expected, layers.Count());
        }
        public void MediaServicesV3AudioCopyVideoMbrNoBFramesTransformH264LayersTest()
        {
            // Arrange
            MediaServicesV3TransformBase transform = new MediaServicesV3AudioCopyVideoMbrNoBFramesTransform(TransformName);
            const int expectedNumberOfVideoLayers  = 5;

            // Act
            var output = transform.Output;
            var preset = output.TransformOutputs.SingleOrDefault().Preset as StandardEncoderPreset;
            var video  = preset.Codecs.Where(p => p is H264Video).SingleOrDefault() as H264Video;

            // Assert
            Xunit.Assert.NotNull(preset);
            Xunit.Assert.Contains(preset.Codecs, p => p is H264Video);
            Xunit.Assert.NotNull(video);
            Xunit.Assert.Equal(expected: expectedNumberOfVideoLayers, video.Layers.Count);
        }
        public void MediaServicesV3AudioCopyVideoMbrNoBFramesTransformAdaptiveBFrameTests(string profile, bool expectedAdaptiveBFrame)
        {
            // Arrange
            var transform = new MediaServicesV3AudioCopyVideoMbrNoBFramesTransform(TransformName);

            // Act
            var output = transform.Output;

            // Assert
            var preset = output.TransformOutputs.SingleOrDefault().Preset as StandardEncoderPreset;

            preset.ShouldNotBeNull();
            var video = preset.Codecs.Where(p => p is H264Video).SingleOrDefault() as H264Video;

            video.ShouldNotBeNull();
            var layers = video.Layers.Where(l => l.Profile == profile);

            layers.Count().ShouldNotBe(0);
            foreach (var item in layers)
            {
                item.AdaptiveBFrame.ShouldBe(expectedAdaptiveBFrame);
            }
        }