コード例 #1
0
        public void Test_Get_Video_Clip_Details()
        {
            // Arrange
            var videoReel = new VideoReel()
            {
                VideoDefinition = VideoDefinition.HD,
                VideoStandard   = VideoStandard.NTSC,
                Name            = "Video Two",
                TotalDuration   = Timecode.Subtract(Timecode.FromString("00:00:20:10", FrameRate.FPS30), Timecode.FromString("00:00:00:00", FrameRate.FPS30)).ToString(),
                Id         = 1,
                VideoClips = new List <VideoClip>()
                {
                    DataHelper.GetaNTSCHDVideoClip()
                }
            };

            this._videoClipService.Setup(x => x.GetClip(3)).Returns(DataHelper.GetaPALHDVideoClip());
            var viewModel = new VideoReelAddViewModel(this._videoReelService.Object, this._videoClipService.Object);

            viewModel.GetVideoClipDetails(3);

            Assert.AreEqual(viewModel.VideoClip.Id, 3);
            Assert.AreEqual(viewModel.VideoClip.VideoStandard, VideoStandard.PAL);
            Assert.AreEqual(viewModel.VideoClip.VideoDefinition, VideoDefinition.HD);
            Assert.AreEqual(viewModel.VideoClip.Description, "Video Promo");
            Assert.AreEqual(viewModel.VideoClip.Name, "Captain America: The First Avenger");
        }
コード例 #2
0
        public void Test_Add_NTSC_HD_VideoClip_To_A_PAL_HD_VideoReel()
        {
            // Arrange
            var videoReel = new VideoReel()
            {
                VideoDefinition = VideoDefinition.HD,
                VideoStandard   = VideoStandard.PAL,
                Name            = "Video Two",
                TotalDuration   = Timecode.Subtract(Timecode.FromString("00:00:20:10", FrameRate.FPS25), Timecode.FromString("00:00:00:00", FrameRate.FPS25)).ToString(),
                Id         = 1,
                VideoClips = new List <VideoClip>()
                {
                    DataHelper.GetaPALHDVideoClip()
                }
            };

            this._videoClipService.Setup(x => x.GetClip(4)).Returns(DataHelper.GetaNTSCHDVideoClip());

            // Act
            var viewModel = new VideoReelAddViewModel(this._videoReelService.Object, this._videoClipService.Object);
            var result    = viewModel.AddClipToReel(videoReel, 4);

            viewModel.VideoClip = DataHelper.GetaNTSCHDVideoClip();

            // Assert
            Assert.AreEqual(viewModel.CanAddClipToReel, false);
            Assert.AreEqual(viewModel.ErrorMessage, "Add failed.Video Standards do not match.");
            Assert.IsFalse(result);

            this._videoClipService.VerifyAll();
        }
コード例 #3
0
        public void Test_Add_PAL_HD_VideoClip_To_A_PAL_HD_VideoReel()
        {
            // Arrange
            var videoReel = new VideoReel()
            {
                VideoDefinition = VideoDefinition.HD,
                VideoStandard   = VideoStandard.PAL,
                Name            = "Video Two",
                TotalDuration   = Timecode.Subtract(Timecode.FromString("00:00:20:10", FrameRate.FPS25), Timecode.FromString("00:00:00:00", FrameRate.FPS25)).ToString(),
                Id         = 1,
                VideoClips = new List <VideoClip>()
                {
                    DataHelper.GetaPALHDVideoClip()
                }
            };

            this._videoClipService.Setup(x => x.GetClip(3))
            .Returns(
                new VideoClip()
            {
                Id              = 4,
                Name            = "Captain America: The First Avenger New",
                Description     = "Video Promo",
                VideoStandard   = VideoStandard.PAL,
                VideoDefinition = VideoDefinition.HD,
                StartTime       = "00:00:00:00",
                EndTime         = "00:00:20:10"
            });

            this._videoReelService.Setup(x => x.GetClipsForaReel(It.IsAny <int>())).Returns(new List <VideoClip>()
            {
                DataHelper.GetaPALHDVideoClip()
            });

            var viewModel = new VideoReelAddViewModel(this._videoReelService.Object, this._videoClipService.Object);

            viewModel.VideoClips = new List <VideoClip>()
            {
                DataHelper.GetaPALHDVideoClip()
            };
            viewModel.VideoClip = new VideoClip()
            {
                Id              = 4,
                Name            = "Captain America: The First Avenger New",
                Description     = "Video Promo",
                VideoStandard   = VideoStandard.PAL,
                VideoDefinition = VideoDefinition.HD,
                StartTime       = "00:00:00:00",
                EndTime         = "00:00:20:10"
            };


            // Act
            var result = viewModel.AddClipToReel(videoReel, 3);

            // Assert
            Assert.AreEqual(viewModel.CanAddClipToReel, true);
            Assert.AreEqual(viewModel.ErrorMessage, string.Empty);
            Assert.IsTrue(result);
        }
コード例 #4
0
        private string CalculateDuration(VideoReel videoReel)
        {
            Timecode timeCode = Timecode.FromString("00:00:00:00", videoReel.VideoStandard.FrameRate().ToFrameRate());

            foreach (var videoClip in videoReel.VideoClips)
            {
                if (timeCode != null)
                {
                    timeCode = Timecode.Add(timeCode, Timecode.Subtract(
                                                Timecode.FromString(videoClip.EndTime, videoClip.VideoStandard.FrameRate().ToFrameRate()),
                                                Timecode.FromString(videoClip.StartTime, videoClip.VideoStandard.FrameRate().ToFrameRate())));
                }
                else
                {
                    timeCode = Timecode.Subtract(
                        Timecode.FromString(videoClip.EndTime, videoClip.VideoStandard.FrameRate().ToFrameRate()),
                        Timecode.FromString(videoClip.StartTime, videoClip.VideoStandard.FrameRate().ToFrameRate()));
                }
            }

            return(videoReel.TotalDuration = timeCode.ToString());
        }