Esempio n. 1
0
 public void Import(TextImportFile textImportFile, ApplicationOptions applicationOptions)
 {
     if (textImportFile == null)
     {
         throw new ArgumentNullException(nameof(textImportFile));
     }
     if (applicationOptions == null)
     {
         throw new ArgumentNullException(nameof(applicationOptions));
     }
     if (textImportFile.IsValid == false)
     {
         throw new InvalidOperationException(String.Format("{0} was not valid!", nameof(textImportFile)));
     }
     CopyValues(textImportFile.ImportCuesheet, applicationOptions);
 }
Esempio n. 2
0
        public void ImportTestCalculateEndCorrectly()
        {
            var testHelper     = new TestHelper();
            var textImportFile = new TextImportFile(new MemoryStream(Resources.Textimport_Bug_54));

            textImportFile.TextImportScheme.SchemeTracks   = "%Artist% - %Title%[\t]{1,}%End%";
            textImportFile.TextImportScheme.SchemeCuesheet = String.Empty;
            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.Count == 39);
            Assert.IsTrue(textImportFile.IsValid);
            var cuesheet = new Cuesheet();

            cuesheet.Import(textImportFile, testHelper.ApplicationOptions);
            Assert.IsTrue(cuesheet.Tracks.Count == 39);
            Assert.IsTrue(cuesheet.Tracks.ElementAt(0).End == new TimeSpan(0, 5, 24));
            Assert.IsTrue(cuesheet.Tracks.ElementAt(38).Begin == new TimeSpan(3, 13, 13));
        }
Esempio n. 3
0
 public void Import(TextImportFile textImportFile)
 {
     if (textImportFile == null)
     {
         throw new ArgumentNullException(nameof(textImportFile));
     }
     if (textImportFile.IsValid == false)
     {
         throw new InvalidOperationException(String.Format("{0} was not valid!", nameof(textImportFile)));
     }
     foreach (var importTrack in textImportFile.Tracks)
     {
         var track = _cuesheetController.NewTrack();
         track.CopyValuesFromImportTrack(importTrack);
         AddTrack(track);
     }
 }
        public void TextImportFileTestPreGapAndPostGap()
        {
            //Prepare text input file
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Sample Artist 1 - Sample Title 1		00:00:02		00:05:00		00:00:00");
            builder.AppendLine("Sample Artist 2 - Sample Title 2		00:00:04		00:09:23		00:00:00");
            builder.AppendLine("Sample Artist 3 - Sample Title 3		00:00:00		00:15:54		00:00:02");
            builder.AppendLine("Sample Artist 4 - Sample Title 4		00:00:00		00:20:13		00:00:03");
            builder.AppendLine("Sample Artist 5 - Sample Title 5		00:00:00		00:24:54		00:00:04");
            builder.AppendLine("Sample Artist 6 - Sample Title 6		00:00:00		00:31:54		00:00:01");
            builder.AppendLine("Sample Artist 7 - Sample Title 7		00:00:00		00:45:54		00:00:00");
            builder.AppendLine("Sample Artist 8 - Sample Title 8		00:00:02		01:15:54		00:00:00");

            var tempFile = Path.GetTempFileName();

            File.WriteAllText(tempFile, builder.ToString());

            //Test TextImportFile
            var textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)));

            textImportFile.TextImportScheme.SchemeCuesheet = String.Empty;
            textImportFile.TextImportScheme.SchemeTracks   = "%Artist% - %Title%[\t]{1,}%PreGap%[\t]{1,}%End%[\t]{1,}%PostGap%";

            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.Count == 8);
            Assert.AreEqual(new TimeSpan(0, 0, 2), textImportFile.ImportCuesheet.Tracks.ElementAt(0).PreGap);
            Assert.AreEqual(new TimeSpan(0, 0, 0), textImportFile.ImportCuesheet.Tracks.ElementAt(0).PostGap);
            Assert.AreEqual(new TimeSpan(0, 0, 4), textImportFile.ImportCuesheet.Tracks.ElementAt(1).PreGap);
            Assert.AreEqual(new TimeSpan(0, 0, 0), textImportFile.ImportCuesheet.Tracks.ElementAt(1).PostGap);
            Assert.AreEqual(new TimeSpan(0, 0, 0), textImportFile.ImportCuesheet.Tracks.ElementAt(2).PreGap);
            Assert.AreEqual(new TimeSpan(0, 0, 2), textImportFile.ImportCuesheet.Tracks.ElementAt(2).PostGap);
            Assert.AreEqual(new TimeSpan(0, 0, 0), textImportFile.ImportCuesheet.Tracks.ElementAt(3).PreGap);
            Assert.AreEqual(new TimeSpan(0, 0, 3), textImportFile.ImportCuesheet.Tracks.ElementAt(3).PostGap);
            Assert.AreEqual(new TimeSpan(0, 0, 0), textImportFile.ImportCuesheet.Tracks.ElementAt(4).PreGap);
            Assert.AreEqual(new TimeSpan(0, 0, 4), textImportFile.ImportCuesheet.Tracks.ElementAt(4).PostGap);
            Assert.AreEqual(new TimeSpan(0, 0, 0), textImportFile.ImportCuesheet.Tracks.ElementAt(5).PreGap);
            Assert.AreEqual(new TimeSpan(0, 0, 1), textImportFile.ImportCuesheet.Tracks.ElementAt(5).PostGap);
            Assert.AreEqual(new TimeSpan(0, 0, 0), textImportFile.ImportCuesheet.Tracks.ElementAt(6).PreGap);
            Assert.AreEqual(new TimeSpan(0, 0, 0), textImportFile.ImportCuesheet.Tracks.ElementAt(6).PostGap);
            Assert.AreEqual(new TimeSpan(0, 0, 2), textImportFile.ImportCuesheet.Tracks.ElementAt(7).PreGap);
            Assert.AreEqual(new TimeSpan(0, 0, 0), textImportFile.ImportCuesheet.Tracks.ElementAt(7).PostGap);

            File.Delete(tempFile);
        }
        public void TextImportFileTestFlags()
        {
            //Prepare text input file
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Sample Artist 1 - Sample Title 1				00:05:00	DCP");
            builder.AppendLine("Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("Sample Artist 3 - Sample Title 3				00:15:54	PRE, DCP");
            builder.AppendLine("Sample Artist 4 - Sample Title 4				00:20:13	4CH");
            builder.AppendLine("Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("Sample Artist 6 - Sample Title 6				00:31:54	PRE DCP 4CH");
            builder.AppendLine("Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("Sample Artist 8 - Sample Title 8				01:15:54	PRE DCP 4CH SCMS");

            var tempFile = Path.GetTempFileName();

            File.WriteAllText(tempFile, builder.ToString());

            //Test TextImportFile
            var textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)));

            textImportFile.TextImportScheme.SchemeCuesheet = String.Empty;
            textImportFile.TextImportScheme.SchemeTracks   = "%Artist% - %Title%[\t]{1,}%End%[\t]{1,}%Flags%";

            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.Count == 8);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(0).Flags.Contains(AudioCuesheet.Flag.DCP));
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(2).Flags.Contains(AudioCuesheet.Flag.DCP));
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(2).Flags.Contains(AudioCuesheet.Flag.PRE));
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(3).Flags.Contains(AudioCuesheet.Flag.FourCH));
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(5).Flags.Contains(AudioCuesheet.Flag.FourCH));
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(5).Flags.Contains(AudioCuesheet.Flag.PRE));
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(5).Flags.Contains(AudioCuesheet.Flag.DCP));
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(7).Flags.Contains(AudioCuesheet.Flag.DCP));
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(7).Flags.Contains(AudioCuesheet.Flag.PRE));
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(7).Flags.Contains(AudioCuesheet.Flag.FourCH));
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ElementAt(7).Flags.Contains(AudioCuesheet.Flag.SCMS));

            File.Delete(tempFile);
        }
        public void FileContentRecognizedTests()
        {
            //Prepare text input file
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("CuesheetArtist - CuesheetTitle				c:\\tmp\\Testfile.mp3");
            builder.AppendLine("Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("Sample Artist 8 - Sample Title 8				01:15:54");

            var tempFile = Path.GetTempFileName();

            File.WriteAllText(tempFile, builder.ToString());

            //Test TextImportFile
            var textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)));

            textImportFile.TextImportScheme.SchemeTracks   = "%Track.Artist% - %Track.Title%[\t]{1,}%Track.End%";
            textImportFile.TextImportScheme.SchemeCuesheet = "\\A.*%Cuesheet.Artist% - %Cuesheet.Title%[\t]{1,}%Cuesheet.Audiofile%";
            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsNotNull(textImportFile.ImportCuesheet);
            Assert.IsNotNull(textImportFile.FileContentRecognized);
            Assert.AreEqual("<Mark>CuesheetArtist</Mark> - <Mark>CuesheetTitle</Mark>				<Mark>c:\\tmp\\Testfile.mp3</Mark>", textImportFile.FileContentRecognized.First());
            Assert.AreEqual("CuesheetArtist", textImportFile.ImportCuesheet.Artist);
            Assert.AreEqual("CuesheetTitle", textImportFile.ImportCuesheet.Title);
            Assert.AreEqual("c:\\tmp\\Testfile.mp3", textImportFile.ImportCuesheet.Audiofile.FileName);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.Count == 8);
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].Artist, "Sample Artist 1");
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].Title, "Sample Title 1");
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].End, new TimeSpan(0, 5, 0));
            Assert.AreEqual("<Mark>Sample Artist 8</Mark> - <Mark>Sample Title 8</Mark>				<Mark>01:15:54</Mark>", textImportFile.FileContentRecognized.Last());

            File.Delete(tempFile);
        }
Esempio n. 7
0
        public void ImportTest()
        {
            //Prepare text input file
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("CuesheetArtist - CuesheetTitle				c:\\tmp\\Testfile.mp3");
            builder.AppendLine("Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("Sample Artist 8 - Sample Title 8				01:15:54");

            var tempFile = Path.GetTempFileName();

            File.WriteAllText(tempFile, builder.ToString());

            //Test TextImportFile
            var textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)));

            textImportFile.TextImportScheme.SchemeTracks   = "%Artist% - %Title%[\t]{1,}%End%";
            textImportFile.TextImportScheme.SchemeCuesheet = "\\A.*%Cuesheet.Artist% - %Cuesheet.Title%[\t]{1,}%Cuesheet.Audiofile%";
            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.Count == 8);
            Assert.IsTrue(textImportFile.IsValid);

            var testHelper = new TestHelper();
            var cuesheet   = new Cuesheet();

            cuesheet.Import(textImportFile, testHelper.ApplicationOptions);

            Assert.IsNull(cuesheet.CDTextfile);
            Assert.AreEqual(2, cuesheet.ValidationErrors.Count);

            File.Delete(tempFile);
        }
Esempio n. 8
0
        public void ImportTest()
        {
            //Prepare text input file
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("Sample Artist 8 - Sample Title 8				01:15:54");

            var tempFile = Path.GetTempFileName();

            File.WriteAllText(tempFile, builder.ToString());

            //Test TextImportFile
            var textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)))
            {
                ImportScheme = "%Artist% - %Title%[\t]{1,}%End%"
            };

            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsTrue(textImportFile.Tracks.Count == 8);
            Assert.IsTrue(textImportFile.IsValid);

            var testHelper = new TestHelper();
            var cuesheet   = testHelper.CuesheetController.Cuesheet;

            cuesheet.Import(textImportFile);

            Assert.AreEqual(cuesheet.ValidationErrors.Count, 3);

            File.Delete(tempFile);
        }
        public void TextImportFileTest()
        {
            //Prepare text input file
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("Sample Artist 8 - Sample Title 8				01:15:54");

            var tempFile = Path.GetTempFileName();

            File.WriteAllText(tempFile, builder.ToString());

            //Test TextImportFile
            var textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)))
            {
                ImportScheme = "%Artist% - %Title%[\t]{1,}%End%"
            };

            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsTrue(textImportFile.Tracks.Count == 8);
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].Artist, "Sample Artist 1");
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].Title, "Sample Title 1");
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].End, new TimeSpan(0, 5, 0));

            File.Delete(tempFile);

            //Prepare next Test
            builder.Clear();

            builder.AppendLine("1|Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("2|Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("3|Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("4|Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("5|Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("6|Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("7|Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("8|Sample Artist 8 - Sample Title 8				01:15:54");

            File.WriteAllText(tempFile, builder.ToString());

            textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)))
            {
                ImportScheme = "%Position%|%Artist% - %Title%[\t]{1,}%End%"
            };

            Assert.IsNotNull(textImportFile.AnalyseException);

            textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)))
            {
                ImportScheme = "%Position%[|]%Artist% - %Title%[\t]{1,}%End%"
            };

            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsTrue(textImportFile.Tracks.Count == 8);
            Assert.IsTrue(textImportFile.Tracks.ToArray()[5].Position == 6);
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].Artist, "Sample Artist 1");
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].Title, "Sample Title 1");
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].End, new TimeSpan(0, 5, 0));

            File.Delete(tempFile);

            //Prepare next Test
            builder.Clear();

            builder.AppendLine("1|Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("2|Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("3|Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("4|Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("5|Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("6|Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("7|Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("8|Sample Artist 8 - Sample Title 8				01:15:54");
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);

            File.WriteAllText(tempFile, builder.ToString());

            textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)))
            {
                ImportScheme = "%Position%|%Artist% - %Title%[\t]{1,}%End%"
            };

            Assert.IsNotNull(textImportFile.AnalyseException);

            textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)))
            {
                ImportScheme = "%Position%[|]%Artist% - %Title%[\t]{1,}%End%"
            };

            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsTrue(textImportFile.Tracks.Count == 8);
            Assert.IsTrue(textImportFile.Tracks.ToArray()[5].Position == 6);
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].Artist, "Sample Artist 1");
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].Title, "Sample Title 1");
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].End, new TimeSpan(0, 5, 0));

            File.Delete(tempFile);

            //Prepare next test

            //Prepare text input file
            builder = new StringBuilder();
            builder.AppendLine("Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("Sample Artist 8 - Sample Title 8				01:15:54");
            builder.AppendLine("Sample Artist 9 - Sample Title 9");

            tempFile = Path.GetTempFileName();
            File.WriteAllText(tempFile, builder.ToString());

            //Test TextImportFile
            textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)))
            {
                ImportScheme = "%Artist% - %Title%[\t]{1,}%End%"
            };
            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsTrue(textImportFile.Tracks.Count == 9);
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].Artist, "Sample Artist 1");
            Assert.AreEqual(textImportFile.Tracks.ToArray()[0].Title, "Sample Title 1");
            Assert.AreEqual(textImportFile.Tracks.ToArray()[7].End, new TimeSpan(1, 15, 54));

            File.Delete(tempFile);
        }
        public void TextImportFileTest()
        {
            //Prepare text input file
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("CuesheetArtist - CuesheetTitle				c:\\tmp\\Testfile.mp3");
            builder.AppendLine("Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("Sample Artist 8 - Sample Title 8				01:15:54");

            var tempFile = Path.GetTempFileName();

            File.WriteAllText(tempFile, builder.ToString());

            //Test TextImportFile
            var textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)));

            textImportFile.TextImportScheme.SchemeTracks   = "%Track.Artist% - %Track.Title%[\t]{1,}%Track.End%";
            textImportFile.TextImportScheme.SchemeCuesheet = "\\A.*%Cuesheet.Artist% - %Cuesheet.Title%[\t]{1,}%Cuesheet.Audiofile%";
            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsNotNull(textImportFile.ImportCuesheet);
            Assert.AreEqual("CuesheetArtist", textImportFile.ImportCuesheet.Artist);
            Assert.AreEqual("CuesheetTitle", textImportFile.ImportCuesheet.Title);
            Assert.AreEqual("c:\\tmp\\Testfile.mp3", textImportFile.ImportCuesheet.Audiofile.FileName);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.Count == 8);
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].Artist, "Sample Artist 1");
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].Title, "Sample Title 1");
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].End, new TimeSpan(0, 5, 0));

            File.Delete(tempFile);

            //Prepare next Test
            builder.Clear();

            builder.AppendLine("CuesheetArtist|CuesheetTitle				c:\\tmp\\TestTextFile.cdt");
            builder.AppendLine("1|Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("2|Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("3|Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("4|Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("5|Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("6|Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("7|Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("8|Sample Artist 8 - Sample Title 8				01:15:54");

            File.WriteAllText(tempFile, builder.ToString());

            textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)));
            textImportFile.TextImportScheme.SchemeCuesheet = "%Cuesheet.Artist%[|]%Cuesheet.Title%[\\t]{1,}%Cuesheet.CDTextfile%";
            textImportFile.TextImportScheme.SchemeTracks   = "%Position%|%Artist% - %Title%[\t]{1,}%End%";

            Assert.IsNotNull(textImportFile.AnalyseException);

            textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)));
            textImportFile.TextImportScheme.SchemeTracks = "%Position%[|]%Artist% - %Title%[\t]{1,}%End%";

            Assert.IsNull(textImportFile.AnalyseException);
            Assert.AreEqual("CuesheetArtist", textImportFile.ImportCuesheet.Artist);
            Assert.AreEqual("CuesheetTitle", textImportFile.ImportCuesheet.Title);
            Assert.AreEqual("c:\\tmp\\TestTextFile.cdt", textImportFile.ImportCuesheet.CDTextfile.FileName);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.Count == 8);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ToArray()[5].Position == 6);
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].Artist, "Sample Artist 1");
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].Title, "Sample Title 1");
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].End, new TimeSpan(0, 5, 0));

            File.Delete(tempFile);

            //Prepare next Test
            builder.Clear();

            builder.AppendLine("CuesheetArtist|CuesheetTitle				c:\\tmp\\TestTextFile.cdt				A83412346734");
            builder.AppendLine("1|Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("2|Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("3|Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("4|Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("5|Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("6|Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("7|Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("8|Sample Artist 8 - Sample Title 8				01:15:54");
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);
            builder.AppendLine(String.Empty);

            File.WriteAllText(tempFile, builder.ToString());

            textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)));
            textImportFile.TextImportScheme.SchemeCuesheet = "%Cuesheet.Artist%[|]%Cuesheet.Title%[\\t]{1,}%Cuesheet.CDTextfile%[\\t]{1,}%Cuesheet.Cataloguenumber%";
            textImportFile.TextImportScheme.SchemeTracks   = "%Position%|%Artist% - %Title%[\t]{1,}%End%";

            Assert.IsNotNull(textImportFile.AnalyseException);

            textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)));
            textImportFile.TextImportScheme.SchemeTracks = "%Position%[|]%Artist% - %Title%[\t]{1,}%End%";

            Assert.IsNull(textImportFile.AnalyseException);
            Assert.AreEqual("CuesheetArtist", textImportFile.ImportCuesheet.Artist);
            Assert.AreEqual("CuesheetTitle", textImportFile.ImportCuesheet.Title);
            Assert.AreEqual("c:\\tmp\\TestTextFile.cdt", textImportFile.ImportCuesheet.CDTextfile.FileName);
            Assert.AreEqual("A83412346734", textImportFile.ImportCuesheet.Cataloguenumber.Value);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.Count == 8);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.ToArray()[5].Position == 6);
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].Artist, "Sample Artist 1");
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].Title, "Sample Title 1");
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].End, new TimeSpan(0, 5, 0));

            File.Delete(tempFile);

            //Prepare next test

            //Prepare text input file
            builder = new StringBuilder();
            builder.AppendLine("Sample Artist 1 - Sample Title 1				00:05:00");
            builder.AppendLine("Sample Artist 2 - Sample Title 2				00:09:23");
            builder.AppendLine("Sample Artist 3 - Sample Title 3				00:15:54");
            builder.AppendLine("Sample Artist 4 - Sample Title 4				00:20:13");
            builder.AppendLine("Sample Artist 5 - Sample Title 5				00:24:54");
            builder.AppendLine("Sample Artist 6 - Sample Title 6				00:31:54");
            builder.AppendLine("Sample Artist 7 - Sample Title 7				00:45:54");
            builder.AppendLine("Sample Artist 8 - Sample Title 8				01:15:54");
            builder.AppendLine("Sample Artist 9 - Sample Title 9");

            tempFile = Path.GetTempFileName();
            File.WriteAllText(tempFile, builder.ToString());

            //Test TextImportFile
            textImportFile = new TextImportFile(new MemoryStream(File.ReadAllBytes(tempFile)));
            textImportFile.TextImportScheme.SchemeCuesheet = String.Empty;
            textImportFile.TextImportScheme.SchemeTracks   = "%Artist% - %Title%[\t]{1,}%End%";

            Assert.IsNull(textImportFile.AnalyseException);
            Assert.IsTrue(textImportFile.ImportCuesheet.Tracks.Count == 9);
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].Artist, "Sample Artist 1");
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[0].Title, "Sample Title 1");
            Assert.AreEqual(textImportFile.ImportCuesheet.Tracks.ToArray()[7].End, new TimeSpan(1, 15, 54));

            File.Delete(tempFile);
        }