public void TestRenderedCamera() { Project p = Utils.CreateProject (); try { TimelineEvent evt = p.Timeline [0]; evt.CamerasConfig = new List<CameraConfig> { new CameraConfig (0) }; PlaylistPlayElement element = new PlaylistPlayElement (evt, p.Description.FileSet); // Playlist with one event var playlist = new Playlist (); playlist.Elements.Add (element); // Create a job const string outputFile = "path"; EncodingSettings settings = new EncodingSettings (VideoStandards.P720, EncodingProfiles.MP4, EncodingQualities.Medium, 25, 1, outputFile, true, true, 20); EditionJob job = new EditionJob (playlist, settings); // Mock IMultimediaToolkit and video editor var mtk = Mock.Of<IMultimediaToolkit> (m => m.GetVideoEditor () == Mock.Of<IVideoEditor> ()); // and guitoolkit var gtk = Mock.Of<IGUIToolkit> (g => g.RenderingStateBar == Mock.Of<IRenderingStateBar> ()); // and a video editor Mock<IVideoEditor> mock = Mock.Get<IVideoEditor> (mtk.GetVideoEditor ()); // And eventbroker Config.EventsBroker = Mock.Of<EventsBroker> (); // Create a rendering object with mocked interfaces RenderingJobsManager renderer = new RenderingJobsManager (mtk, gtk); // Start service renderer.Start (); renderer.AddJob (job); // Check that AddSegment is called with the right video file. mock.Verify (m => m.AddSegment (p.Description.FileSet [0].FilePath, evt.Start.MSeconds, evt.Stop.MSeconds, evt.Rate, evt.Name, true, new Area ()), Times.Once ()); /* Test with a camera index bigger than the total cameras */ renderer.CancelAllJobs (); mock.ResetCalls (); evt = p.Timeline [1]; evt.CamerasConfig = new List<CameraConfig> { new CameraConfig (1) }; element = new PlaylistPlayElement (evt, p.Description.FileSet); playlist.Elements [0] = element; job = new EditionJob (playlist, settings); renderer.AddJob (job); mock.Verify (m => m.AddSegment (p.Description.FileSet [1].FilePath, evt.Start.MSeconds, evt.Stop.MSeconds, evt.Rate, evt.Name, true, new Area ()), Times.Once ()); /* Test with the secondary camera */ renderer.CancelAllJobs (); mock.ResetCalls (); evt = p.Timeline [1]; evt.CamerasConfig = new List<CameraConfig> { new CameraConfig (2) }; element = new PlaylistPlayElement (evt, p.Description.FileSet); playlist.Elements [0] = element; job = new EditionJob (playlist, settings); renderer.AddJob (job); mock.Verify (m => m.AddSegment (p.Description.FileSet [0].FilePath, evt.Start.MSeconds, evt.Stop.MSeconds, evt.Rate, evt.Name, true, new Area ()), Times.Once ()); } finally { Utils.DeleteProject (p); } }