/// <summary> /// Asserts that the <paramref name="serviceProject"/> contains equivalent values from the <paramref name="project"/>. /// </summary> /// <param name="project">The project with expected values.</param> /// <param name="serviceProject">The project with actual values.</param> public static void AssertProject(RCE.Infrastructure.Models.Project project, Project serviceProject) { Assert.AreEqual(project.ProviderUri, serviceProject.Id); Assert.AreEqual(project.Created, serviceProject.Created); Assert.AreEqual(project.Name, serviceProject.Title); Assert.AreEqual(project.Creator, serviceProject.Creator); Assert.AreEqual(project.ModifiedBy, serviceProject.ModifiedBy); Assert.AreNotEqual(DateTime.MinValue, serviceProject.Modified); Assert.AreEqual(project.Duration, serviceProject.Duration); Assert.AreEqual(project.AutoSaveInterval, serviceProject.AutoSaveInterval); Assert.AreEqual(project.StartTimeCode.TotalSeconds, serviceProject.StartTimeCode); Assert.AreEqual(project.SmpteFrameRate.ToString(), serviceProject.SmpteFrameRate); Assert.AreEqual(project.RippleMode, serviceProject.RippleMode); Assert.AreEqual(project.Resolution, serviceProject.Resolution); Assert.AreEqual(project.Timeline.Count - 1, serviceProject.Timeline.Count); AssertTrack(project.Timeline[0], serviceProject.Timeline[0]); AssertTrack(project.Timeline[1], serviceProject.Timeline[1]); Assert.AreEqual(project.Comments.Count, serviceProject.Comments.Count); AssertComment(project.Comments[0], serviceProject.Comments[0]); AssertComment(project.Comments[1], serviceProject.Comments[1]); AssertComment(project.Comments[2], serviceProject.Comments[2]); Assert.AreEqual(project.Timeline[2].Shots.Count, serviceProject.Titles.Count); Assert.AreEqual(project.Timeline[2].Shots[0].Asset.ProviderUri, serviceProject.Titles[0].Id); Assert.AreEqual(project.Timeline[2].Shots[0].TrackAnchorUri, serviceProject.Titles[0].TrackAnchor.Id); Assert.AreEqual(project.Timeline[2].Shots[0].Position.TotalSeconds, serviceProject.Titles[0].TrackAnchor.MarkIn); Assert.AreEqual(project.Timeline[2].Shots[0].OutPosition.TotalSeconds, serviceProject.Titles[0].TrackAnchor.MarkOut); Assert.AreEqual(((TitleAsset)project.Timeline[2].Shots[0].Asset).TitleTemplate.ProviderUri, serviceProject.Titles[0].TitleTemplate.Id); Assert.AreEqual(((TitleAsset)project.Timeline[2].Shots[0].Asset).TitleTemplate.Title, serviceProject.Titles[0].TitleTemplate.TemplateName); Assert.AreEqual(((TitleAsset)project.Timeline[2].Shots[0].Asset).MainText, serviceProject.Titles[0].TextBlockCollection[0].Text); Assert.AreEqual(((TitleAsset)project.Timeline[2].Shots[0].Asset).SubText, serviceProject.Titles[0].TextBlockCollection[1].Text); }
/// <summary> /// Creates a project for testing. /// </summary> /// <returns>A project with values.</returns> public static Infrastructure.Models.Project CreateProject() { var project = new RCE.Infrastructure.Models.Project(); project.ProviderUri = CreateUri(); project.Name = "MyProject"; project.Creator = "Creator"; project.Created = new DateTime(2009, 1, 1); project.ModifiedBy = "ModifiedBy"; project.Modified = new DateTime(2009, 1, 2); project.AutoSaveInterval = 10; project.Duration = 60; project.RippleMode = true; project.SmpteFrameRate = SmpteFrameRate.Smpte2997NonDrop; project.StartTimeCode = TimeCode.FromSeconds(60d, project.SmpteFrameRate); project.MediaBin = new RCE.Infrastructure.Models.MediaBin { ProviderUri = CreateUri(), Creator = "Creator", Created = new DateTime(2009, 1, 1), ModifiedBy = "ModifiedBy", Modified = new DateTime(2009, 1, 2) }; project.Resolution = "1280x800"; project.Comments.Add(CreateComment(CommentType.Timeline)); project.Comments.Add(CreateComment(CommentType.Shot)); project.Comments.Add(CreateComment(CommentType.Ink)); project.Timeline.Add(CreateTrack(RCE.Infrastructure.Models.TrackType.Visual)); project.Timeline[0].Shots.Add(CreateShot(CreateVideoAsset(), project.Comments[1])); project.Timeline[0].Shots.Add(CreateShot(CreateVideoAsset(), project.Comments[2])); project.Timeline[0].Shots.Add(CreateShot(CreateImageAsset(), null)); project.Timeline.Add(CreateTrack(RCE.Infrastructure.Models.TrackType.Audio)); project.Timeline[1].Shots.Add(CreateShot(CreateAudioAsset(), null)); project.Timeline.Add(CreateTrack(RCE.Infrastructure.Models.TrackType.Title)); project.Timeline[2].Shots.Add(CreateShot(CreateTitleAsset(), null)); return(project); }