Example #1
0
        public void DoWorkSetsCurrentTaskStateToCorrectValue(FfmpegJobModelState jobStatus, ExecutionState assertState)
        {
            mockFFMPegService = new Mock <IFFMpegService>();
            mockFFMPegService.Setup(m => m.PostAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <ObservableCollection <AudioDestinationFormat> >(), null, null))
            .Returns(Guid.NewGuid());

            FfmpegJobModel job = new FfmpegJobModel()
            {
                State = jobStatus, Tasks = new ObservableCollection <FfmpegTaskModel>()
                {
                    new FfmpegTaskModel()
                    {
                        DestinationFilename = "\\\\sdfsdfsdf\\sdfgsdf\\1"
                    }
                }
            };

            mockFFMPegService.Setup(m => m.GetAudioJob(It.IsAny <Guid>())).Returns(job);

            sut          = new FFMpeg.FFMpeg(_pluginUrn, MockTimeProvider.Object, Logging, mockFFMPegService.Object, mockPresetProvider.Object);
            Task.To.Path = "\\\\sdfsdfsdf\\sdfgsdf";

            sut.Assign(Task);
            sut.Pulse(Task);

            Assert.That(Task.State, Is.EqualTo(assertState));
        }
Example #2
0
        public void DoWorkCallSetsCurrentTaskStateToFailedIfExceptionOrrurs()
        {
            mockFFMPegService = new Mock <IFFMpegService>();
            mockFFMPegService.Setup(m => m.PostAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <ObservableCollection <AudioDestinationFormat> >(), null, null))
            .Returns(Guid.NewGuid());

            FFMpegClient.FfmpegJobModel job = new FFMpegClient.FfmpegJobModel()
            {
                State = FfmpegJobModelState.Done,
                Tasks = new ObservableCollection <FfmpegTaskModel>()
                {
                    new FfmpegTaskModel()
                    {
                        DestinationFilename = "\\\\sdfsdfsdf\\sdfgsdf\\1_64.mp3"
                    }
                }
            };
            mockFFMPegService.Setup(m => m.GetAudioJob(It.IsAny <Guid>())).Returns(job);

            sut = new FFMpeg.FFMpeg(_pluginUrn, MockTimeProvider.Object, Logging, mockFFMPegService.Object, mockPresetProvider.Object);

            Task.To.Path = "\\\\NOT ALIKE AT ALL"; // Forces exception

            sut.Assign(Task);
            sut.Pulse(Task);

            Assert.That(Task.State, Is.EqualTo(ExecutionState.Failed));
        }
Example #3
0
        public void DoWorkAddsCorrectNumberOfFilenamesToCurrentTask()
        {
            mockFFMPegService = new Mock <IFFMpegService>();
            mockFFMPegService.Setup(m => m.PostMuxAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Guid.NewGuid());

            FFMpegClient.FfmpegJobModel job = new FFMpegClient.FfmpegJobModel()
            {
                State = FfmpegJobModelState.Done,
                Tasks = new ObservableCollection <FfmpegTaskModel>
                {
                    new FfmpegTaskModel
                    {
                        DestinationFilename = "\\\\sdfsdfsdf\\sdfgsdf\\test.mp4"
                    }
                }
            };
            mockFFMPegService.Setup(m => m.GetAudioJob(It.IsAny <Guid>())).Returns(job);

            sut = new FFMpeg.FFMpeg(_pluginUrn, MockTimeProvider.Object, Logging, mockFFMPegService.Object, mockPresetProvider.Object);

            Task.To.Path = "\\\\sdfsdfsdf\\sdfgsdf";

            sut.Assign(Task);
            sut.Pulse(Task);

            Assert.That(sut.GetStatus().CurrentTask.To.Files.Count, Is.EqualTo(1));
        }
Example #4
0
        public void DoWorkSetsTargetFilesIfExecutionStateIsDone()
        {
            mockFFMPegService = new Mock <IFFMpegService>();
            mockFFMPegService.Setup(m => m.PostMuxAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Guid.NewGuid());

            var job = new FfmpegJobModel()
            {
                State = FfmpegJobModelState.Done,
                Tasks = new ObservableCollection <FfmpegTaskModel>
                {
                    new FfmpegTaskModel
                    {
                        DestinationFilename = "\\\\sdfsdfsdf\\sdfgsdf\\testfilename.mp4"
                    }
                }
            };

            mockFFMPegService.Setup(m => m.GetAudioJob(It.IsAny <Guid>())).Returns(job);

            sut          = new FFMpeg.FFMpeg(_pluginUrn, MockTimeProvider.Object, Logging, mockFFMPegService.Object, mockPresetProvider.Object);
            Task.To.Path = "\\\\sdfsdfsdf\\sdfgsdf";

            sut.Assign(Task);
            sut.Pulse(Task);

            Assert.That(Task.To.Files, Is.Not.Empty);
        }
Example #5
0
        public void SetUp()
        {
            DynamicPlugin.ClearSiblings(FFMpeg.FFMpeg.Type);
            mockFFMPegService.Setup(m => m.GetNumberOfSupportedPlugins()).Returns(1);
            mockPresetProvider.Setup(m => m.AsList()).Returns(new List <FFMpegConfiguration>
            {
                new FFMpegConfiguration
                {
                    Format = StateFormat.audio_od_standard,
                    AudioDestinationsList = new ObservableCollection <AudioDestinationFormat>
                    {
                        new AudioDestinationFormat
                        {
                            AudioCodec = AudioDestinationFormatAudioCodec.MP3,
                            Format     = AudioDestinationFormatFormat.MP3,
                            Bitrate    = 64,
                            Channels   = AudioDestinationFormatChannels.Mono
                        }
                    }
                }
            });
            Plugin = sut = new FFMpeg.FFMpeg(_pluginUrn, MockTimeProvider.Object, Logging, mockFFMPegService.Object, mockPresetProvider.Object);

            Task = new ExecutionTask
            {
                From = new Essence()
                {
                    Flags       = StateFlags.None,
                    Path        = @"\\sdfsd\sdfsdf\sdfsfsd",
                    Format      = StateFormat.dv5p,
                    AspectRatio = AspectRatio.ratio_16x9,
                    Files       = new List <EssenceFile> {
                        "sdfsdfsdf.mov"
                    },
                    Duration    = 234234234,
                    Attachments = new List <Attachment>()
                    {
                        new Attachment()
                        {
                            Type = AttachmentType.Audio, Path = @"\\sdfsd\sdfsdf\sdfsfsd.wav"
                        }
                    }
                },
                To = new Essence()
                {
                    Flags       = StateFlags.AlternativeAudio,
                    Path        = @"\\sdfsdfsdf\sdgsdgsdg",
                    Format      = StateFormat.dv5p,
                    AspectRatio = AspectRatio.ratio_16x9,
                    Files       = new List <EssenceFile>()
                },
                PluginUrn = _pluginUrn
            };
        }
Example #6
0
        public void DoWorkDoesNotSetTargetFilesIfExecutionStateIsNotDone(FfmpegJobModelState FfmpegJobModel)
        {
            mockFFMPegService = new Mock <IFFMpegService>();
            mockFFMPegService.Setup(m => m.PostMuxAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Guid.NewGuid());

            FFMpegClient.FfmpegJobModel job = new FFMpegClient.FfmpegJobModel()
            {
                State = FfmpegJobModel
            };
            mockFFMPegService.Setup(m => m.GetAudioJob(It.IsAny <Guid>())).Returns(job);

            sut = new FFMpeg.FFMpeg(_pluginUrn, MockTimeProvider.Object, Logging, mockFFMPegService.Object, mockPresetProvider.Object);

            sut.Assign(Task);
            sut.Pulse(Task);

            Assert.That(Task.To.Files, Is.Empty);
        }
Example #7
0
        public void DoWorkDoesNotCallFFMPegServicePostIfForeignIsKeyNotEmpty(string foreignKey)
        {
            mockFFMPegService = new Mock <IFFMpegService>();
            mockFFMPegService.Setup(m => m.PostAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <IList <AudioDestinationFormat> >(), null, null))
            .Returns(Guid.NewGuid());

            FFMpegClient.FfmpegJobModel job = new FFMpegClient.FfmpegJobModel()
            {
                State = FfmpegJobModelState.InProgress
            };
            mockFFMPegService.Setup(m => m.GetAudioJob(It.IsAny <Guid>())).Returns(job);
            Task.ForeignKey = foreignKey;

            sut = new FFMpeg.FFMpeg(_pluginUrn, MockTimeProvider.Object, Logging, mockFFMPegService.Object, mockPresetProvider.Object);

            sut.Assign(Task);
            sut.Pulse(Task);

            mockFFMPegService.Verify(m => m.PostAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <ObservableCollection <AudioDestinationFormat> >(), null, null), Times.Never);
        }
Example #8
0
        public void DoWorkCallsFFMPegServiceMuxPostIfForeignKeyIsNullOrEmpty(string foreignKey)
        {
            mockFFMPegService = new Mock <IFFMpegService>();
            mockFFMPegService.Setup(m => m.PostMuxAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Guid.NewGuid());

            FFMpegClient.FfmpegJobModel job = new FFMpegClient.FfmpegJobModel()
            {
                State = FfmpegJobModelState.InProgress
            };
            mockFFMPegService.Setup(m => m.GetAudioJob(It.IsAny <Guid>())).Returns(job);
            Task.ForeignKey = foreignKey;

            sut = new FFMpeg.FFMpeg(_pluginUrn, MockTimeProvider.Object, Logging, mockFFMPegService.Object, mockPresetProvider.Object);

            sut.Assign(Task);
            sut.Pulse(Task);

            mockFFMPegService.Verify(m => m.PostMuxAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Once);
        }
Example #9
0
        public void DoWorkCallSetsCurrentTaskStateToFailedIfExceptionOrrurs()
        {
            mockFFMPegService = new Mock <IFFMpegService>();
            mockFFMPegService.Setup(m => m.PostMuxAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Guid.NewGuid());

            var job = new FfmpegJobModel()
            {
                State = FfmpegJobModelState.Done,
            };

            mockFFMPegService.Setup(m => m.GetAudioJob(It.IsAny <Guid>())).Returns(job);

            sut = new FFMpeg.FFMpeg(_pluginUrn, MockTimeProvider.Object, Logging, mockFFMPegService.Object, mockPresetProvider.Object);

            Task.To.Path = "\\\\NOT ALIKE AT ALL"; // Forces exception

            sut.Assign(Task);
            sut.Pulse(Task);

            Assert.That(Task.State, Is.EqualTo(ExecutionState.Failed));
        }
Example #10
0
        public void IntroOutroTest(StateFlags flags)
        {
            Task.From.Attachments = new List <Attachment>();
            string introArg = null;

            if (flags.HasFlag(StateFlags.Intro))
            {
                introArg = "D:\\temp\\intro.wav";
                Task.From.Attachments.Add(new Attachment
                {
                    Type      = AttachmentType.Intro,
                    Path      = introArg,
                    Arguments = new Dictionary <string, string>()
                    {
                        { "Duration", "10000" }
                    }
                });
                Task.To.Flags |= StateFlags.Intro;
            }
            string outroArg = null;

            if (flags.HasFlag(StateFlags.Outro))
            {
                outroArg = "D:\\temp\\outro.wav";
                Task.From.Attachments.Add(new Attachment
                {
                    Type      = AttachmentType.Outro,
                    Path      = outroArg,
                    Arguments = new Dictionary <string, string>()
                    {
                        { "Duration", "10000" }
                    }
                });
                Task.To.Flags |= StateFlags.Outro;
            }
            Assert.That(sut.CheckAndEstimate(Task));

            mockFFMPegService = new Mock <IFFMpegService>(MockBehavior.Strict);
            var jobGuid = Guid.NewGuid();

            mockFFMPegService.Setup(m => m.PostAudioJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <ObservableCollection <AudioDestinationFormat> >(), introArg, outroArg))
            .Returns(jobGuid);

            FfmpegJobModel job = new FfmpegJobModel()
            {
                State = FfmpegJobModelState.Done,
                Tasks = new ObservableCollection <FfmpegTaskModel>()
                {
                    new FfmpegTaskModel()
                    {
                        DestinationFilename = "\\\\sdfsdfsdf\\sdfgsdf\\1_64.mp3"
                    },
                    new FfmpegTaskModel()
                    {
                        DestinationFilename = "\\\\sdfsdfsdf\\sdfgsdf\\1_192.mp3"
                    },
                    new FfmpegTaskModel()
                    {
                        DestinationFilename = "\\\\sdfsdfsdf\\sdfgsdf\\1_64.mp4"
                    }
                }
            };

            mockFFMPegService.Setup(m => m.GetAudioJob(jobGuid)).Returns(job);

            sut          = new FFMpeg.FFMpeg(_pluginUrn, MockTimeProvider.Object, Logging, mockFFMPegService.Object, mockPresetProvider.Object);
            Task.To.Path = "\\\\sdfsdfsdf\\sdfgsdf";

            sut.Assign(Task);
            sut.Pulse(Task);
            Assert.That(Task.To.Files, Is.Not.Empty);
        }