1818using AudioCuesheetEditor . Model . AudioCuesheet . Import ;
1919using AudioCuesheetEditor . Model . IO ;
2020using AudioCuesheetEditor . Model . IO . Import ;
21+ using AudioCuesheetEditor . Model . UI ;
2122using AudioCuesheetEditor . Services . IO ;
2223using AudioCuesheetEditor . Services . UI ;
2324using AudioCuesheetEditor . Tests . Utility ;
@@ -43,8 +44,8 @@ public async Task AnalyseImportfile_WithTextfile_SetsImportCuesheet()
4344 {
4445 // Arrange
4546 var fileContent = "This is just a test" ;
46- var traceChangeManager = new TraceChangeManager ( TestHelper . CreateLogger < TraceChangeManager > ( ) ) ;
47- var sessionStateContainer = new SessionStateContainer ( traceChangeManager ) ;
47+ var traceChangeManagerMock = new Mock < ITraceChangeManager > ( ) ;
48+ var sessionStateContainer = new SessionStateContainer ( traceChangeManagerMock . Object ) ;
4849 var fileInputManagerMock = new Mock < IFileInputManager > ( ) ;
4950 var textImportServiceMock = new Mock < ITextImportService > ( ) ;
5051 var importCuesheet = new ImportCuesheet ( )
@@ -74,8 +75,7 @@ public async Task AnalyseImportfile_WithTextfile_SetsImportCuesheet()
7475 } ;
7576 textImportServiceMock . Setup ( x => x . AnalyseAsync ( fileContent ) ) . ReturnsAsync ( importfile ) ;
7677 var loggerMock = new Mock < ILogger < ImportManager > > ( ) ;
77- var importManager = new ImportManager ( sessionStateContainer , traceChangeManager , fileInputManagerMock . Object , textImportServiceMock . Object , loggerMock . Object ) ;
78- var testHelper = new TestHelper ( ) ;
78+ var importManager = new ImportManager ( sessionStateContainer , traceChangeManagerMock . Object , fileInputManagerMock . Object , textImportServiceMock . Object , loggerMock . Object ) ;
7979 sessionStateContainer . Importfile = new Importfile ( )
8080 {
8181 FileContent = "This is just a test" ,
@@ -101,6 +101,8 @@ public async Task AnalyseImportfile_WithTextfile_SetsImportCuesheet()
101101 Assert . AreEqual ( importCuesheet . Tracks . First ( ) . Position , sessionStateContainer . ImportCuesheet . Tracks . First ( ) . Position ) ;
102102 Assert . AreEqual ( importCuesheet . Tracks . First ( ) . PreGap , sessionStateContainer . ImportCuesheet . Tracks . First ( ) . PreGap ) ;
103103 Assert . AreEqual ( importCuesheet . Tracks . First ( ) . PostGap , sessionStateContainer . ImportCuesheet . Tracks . First ( ) . PostGap ) ;
104+ traceChangeManagerMock . Verify ( x => x . TraceChanges ( It . IsAny < Cuesheet > ( ) ) ) ;
105+ traceChangeManagerMock . Verify ( x => x . TraceChanges ( It . IsAny < Track > ( ) ) ) ;
104106 }
105107
106108 [ TestMethod ( ) ]
@@ -120,7 +122,6 @@ public async Task AnalyseImportfile_WithoutAnalysedCuesheet_DoesNothing()
120122 textImportServiceMock . Setup ( x => x . AnalyseAsync ( fileContent ) ) . ReturnsAsync ( importfile ) ;
121123 var loggerMock = new Mock < ILogger < ImportManager > > ( ) ;
122124 var importManager = new ImportManager ( sessionStateContainer , traceChangeManager , fileInputManagerMock . Object , textImportServiceMock . Object , loggerMock . Object ) ;
123- var testHelper = new TestHelper ( ) ;
124125 sessionStateContainer . Importfile = importfile ;
125126 // Act
126127 await importManager . AnalyseImportfile ( ) ;
@@ -207,6 +208,50 @@ public async Task ImportFilesAsync_TextFile_ImportsCorrectly()
207208 Assert . AreEqual ( ImportFileType . Textfile , sessionStateContainer . Importfile . FileType ) ;
208209 }
209210
211+ [ TestMethod ]
212+ public void ImportCuesheet_WithImportCuesheetAvailable_ImportsCuesheetData ( )
213+ {
214+ // Arrange
215+ var traceChangeManagerMock = new Mock < ITraceChangeManager > ( ) ;
216+ var sessionStateContainer = new SessionStateContainer ( traceChangeManagerMock . Object ) ;
217+ var analyzedCuesheet = new Cuesheet ( )
218+ {
219+ Artist = "Artist 123" ,
220+ Title = "Title 456"
221+ } ;
222+ analyzedCuesheet . AddTrack ( new ( )
223+ {
224+ Artist = "Track Artist 1" ,
225+ Title = "Track Title 1" ,
226+ End = new TimeSpan ( 0 , 4 , 23 ) ,
227+ } ) ;
228+ analyzedCuesheet . AddTrack ( new ( )
229+ {
230+ Artist = "Track Artist 2" ,
231+ Title = "Track Title 2" ,
232+ End = new TimeSpan ( 0 , 8 , 54 ) ,
233+ } ) ;
234+ sessionStateContainer . ImportCuesheet = analyzedCuesheet ;
235+ var fileInputManagerMock = new Mock < IFileInputManager > ( ) ;
236+ var textImportServiceMock = new Mock < ITextImportService > ( ) ;
237+ var loggerMock = new Mock < ILogger < ImportManager > > ( ) ;
238+ var importManager = new ImportManager ( sessionStateContainer , traceChangeManagerMock . Object , fileInputManagerMock . Object , textImportServiceMock . Object , loggerMock . Object ) ;
239+ // Act
240+ importManager . ImportCuesheet ( ) ;
241+ // Assert
242+ Assert . AreEqual ( analyzedCuesheet . Artist , sessionStateContainer . Cuesheet . Artist ) ;
243+ Assert . AreEqual ( analyzedCuesheet . Title , sessionStateContainer . Cuesheet . Title ) ;
244+ Assert . AreEqual ( analyzedCuesheet . Tracks . First ( ) . Artist , sessionStateContainer . Cuesheet . Tracks . First ( ) . Artist ) ;
245+ Assert . AreEqual ( analyzedCuesheet . Tracks . First ( ) . Title , sessionStateContainer . Cuesheet . Tracks . First ( ) . Title ) ;
246+ Assert . AreEqual ( analyzedCuesheet . Tracks . First ( ) . Begin , sessionStateContainer . Cuesheet . Tracks . First ( ) . Begin ) ;
247+ Assert . AreEqual ( analyzedCuesheet . Tracks . First ( ) . End , sessionStateContainer . Cuesheet . Tracks . First ( ) . End ) ;
248+ Assert . AreEqual ( analyzedCuesheet . Tracks . Last ( ) . Artist , sessionStateContainer . Cuesheet . Tracks . Last ( ) . Artist ) ;
249+ Assert . AreEqual ( analyzedCuesheet . Tracks . Last ( ) . Title , sessionStateContainer . Cuesheet . Tracks . Last ( ) . Title ) ;
250+ Assert . AreEqual ( analyzedCuesheet . Tracks . Last ( ) . Begin , sessionStateContainer . Cuesheet . Tracks . Last ( ) . Begin ) ;
251+ Assert . AreEqual ( analyzedCuesheet . Tracks . Last ( ) . End , sessionStateContainer . Cuesheet . Tracks . Last ( ) . End ) ;
252+ traceChangeManagerMock . Verify ( x => x . RemoveTracedChanges ( It . IsAny < IEnumerable < ITraceable > > ( ) ) ) ;
253+ }
254+
210255 private static IBrowserFile CreateBrowserFileMock ( string name , string content = "TestContent" )
211256 {
212257 var fileMock = new Mock < IBrowserFile > ( ) ;
0 commit comments