public void ExportprofileTest() { var testHelper = new TestHelper(); //Prepare cuesheet Cuesheet cuesheet = new Cuesheet { Artist = "Demo Artist", Title = "Demo Title", Audiofile = new Audiofile("Testfile.mp3") }; var begin = TimeSpan.Zero; for (int i = 1; i < 25; i++) { var track = new Track { Artist = String.Format("Demo Track Artist {0}", i), Title = String.Format("Demo Track Title {0}", i), Begin = begin }; begin = begin.Add(new TimeSpan(0, i, i)); track.End = begin; cuesheet.AddTrack(track, testHelper.ApplicationOptions); var rand = new Random(); var flagsToAdd = rand.Next(0, 3); if (flagsToAdd > 0) { for (int x = 0; x < flagsToAdd; x++) { track.SetFlag(Flag.AvailableFlags.ElementAt(x), SetFlagMode.Add); } } } cuesheet.Cataloguenumber.Value = "Testcatalognumber"; cuesheet.CDTextfile = new CDTextfile("Testfile.cdt"); //Test class var exportProfile = new Exportprofile(); exportProfile.SchemeHead.Scheme = "%Cuesheet.Artist%;%Cuesheet.Title%;%Cuesheet.Cataloguenumber%;%Cuesheet.CDTextfile%"; 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;Testcatalognumber;Testfile.cdt"); 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");
public void SetDefaultValues() { //Declare defaults if (String.IsNullOrEmpty(CuesheetFileName) == true) { CuesheetFileName = Cuesheetfile.DefaultFileName; } if (String.IsNullOrEmpty(CultureName) == true) { CultureName = OptionsController.DefaultCultureName; } if (ExportProfiles == null) { var list = new List <Exportprofile>(); var exportProfile = new Exportprofile() { FileName = "YouTube.txt", Name = "YouTube" }; exportProfile.SchemeHead.Scheme = "%Cuesheet.Artist% - %Cuesheet.Title%"; exportProfile.SchemeTracks.Scheme = "%Track.Artist% - %Track.Title% %Track.Begin%"; exportProfile.SchemeFooter.Scheme = String.Empty; list.Add(exportProfile); exportProfile = new Exportprofile() { FileName = "Mixcloud.txt", Name = "Mixcloud" }; exportProfile.SchemeHead.Scheme = String.Empty; exportProfile.SchemeTracks.Scheme = "%Track.Artist% - %Track.Title% %Track.Begin%"; exportProfile.SchemeFooter.Scheme = String.Empty; list.Add(exportProfile); exportProfile = new Exportprofile() { FileName = "Export.csv", Name = "CSV Export" }; exportProfile.SchemeHead.Scheme = "%Cuesheet.Artist%;%Cuesheet.Title%;"; exportProfile.SchemeTracks.Scheme = "%Track.Position%;%Track.Artist%;%Track.Title%;%Track.Begin%;%Track.End%;%Track.Length%"; exportProfile.SchemeFooter.Scheme = "Exported at %DateTime% using AudioCuesheetEditor (https://neocodermatrix86.github.io/AudioCuesheetEditor/)"; list.Add(exportProfile); exportProfile = new Exportprofile() { FileName = "Tracks.txt", Name = "Tracks only" }; exportProfile.SchemeHead.Scheme = String.Empty; exportProfile.SchemeTracks.Scheme = "%Track.Position% - %Track.Artist% - %Track.Title% - %Track.Begin% - %Track.End% - %Track.Length%"; exportProfile.SchemeFooter.Scheme = String.Empty; list.Add(exportProfile); ExportProfiles = list.AsReadOnly(); } if (TextImportScheme == null) { TextImportScheme = TextImportScheme.DefaultTextImportScheme; } if (String.IsNullOrEmpty(AudioFileNameRecording) == true) { AudioFileNameRecording = Audiofile.RecordingFileName; } if (LinkTracksWithPreviousOne.HasValue == false) { LinkTracksWithPreviousOne = true; } if (String.IsNullOrEmpty(ProjectFileName)) { ProjectFileName = Projectfile.DefaultFileName; } if (RecordCountdownTimer.HasValue == false) { RecordCountdownTimer = 5; } }