public void ExportProfileTest() { //Prepare cuesheet var testHelper = new TestHelper(); Cuesheet cuesheet = testHelper.CuesheetController.Cuesheet; cuesheet.Artist = "Demo Artist"; cuesheet.Title = "Demo Title"; cuesheet.AudioFile = new AudioFile("Testfile.mp3"); var begin = TimeSpan.Zero; for (int i = 1; i < 25; i++) { var track = testHelper.CuesheetController.NewTrack(); track.Artist = String.Format("Demo Track Artist {0}", i); track.Title = String.Format("Demo Track Title {0}", i); track.Begin = begin; begin = begin.Add(new TimeSpan(0, i, i)); track.End = begin; cuesheet.AddTrack(track); } //Test class var exportProfile = new ExportProfile(testHelper.Localizer); exportProfile.SchemeHead.Scheme = "%Cuesheet.Artist%;%Cuesheet.Title%"; Assert.IsTrue(exportProfile.SchemeHead.IsValid); exportProfile.SchemeTracks.Scheme = "%Track.Position%;%Track.Artist%;%Track.Title%;%Track.Begin%;%Track.End%;%Track.Length%"; Assert.IsTrue(exportProfile.SchemeTracks.IsValid); exportProfile.SchemeFooter.Scheme = "Exported %Cuesheet.Title% from %Cuesheet.Artist% using AudioCuesheetEditor"; Assert.IsTrue(exportProfile.SchemeFooter.IsValid); Assert.IsTrue(exportProfile.IsExportable); var fileContent = exportProfile.GenerateExport(cuesheet); Assert.IsNotNull(fileContent); var tempFile = Path.GetTempFileName(); File.WriteAllBytes(tempFile, fileContent); var content = File.ReadAllLines(tempFile); Assert.AreEqual(content[0], "Demo Artist;Demo Title"); for (int i = 1; i < content.Length - 1; i++) { Assert.IsFalse(String.IsNullOrEmpty(content[i])); Assert.AreNotEqual(content[i], ";;;;;"); Assert.IsTrue(content[i].StartsWith(cuesheet.Tracks.ToList()[i - 1].Position + ";")); } Assert.AreEqual(content[^ 1], "Exported Demo Title from Demo Artist using AudioCuesheetEditor");