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");
Esempio n. 2
0
 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;
     }
 }