Skip to content

Commit d51af90

Browse files
add unit tests
1 parent 93c5076 commit d51af90

2 files changed

Lines changed: 52 additions & 7 deletions

File tree

AudioCuesheetEditor.Tests/Services/IO/ImportManagerTests.cs

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ public async Task AnalyseImportfile_WithTextfile_SetsImportCuesheet()
4343
{
4444
// Arrange
4545
var fileContent = "This is just a test";
46-
var traceChangeManager = new TraceChangeManager(TestHelper.CreateLogger<TraceChangeManager>());
47-
var sessionStateContainer = new SessionStateContainer(traceChangeManager);
46+
var traceChangeManagerMock = new Mock<ITraceChangeManager>();
47+
var sessionStateContainer = new SessionStateContainer(traceChangeManagerMock.Object);
4848
var fileInputManagerMock = new Mock<IFileInputManager>();
4949
var textImportServiceMock = new Mock<ITextImportService>();
5050
var importCuesheet = new ImportCuesheet()
@@ -74,8 +74,7 @@ public async Task AnalyseImportfile_WithTextfile_SetsImportCuesheet()
7474
};
7575
textImportServiceMock.Setup(x => x.AnalyseAsync(fileContent)).ReturnsAsync(importfile);
7676
var loggerMock = new Mock<ILogger<ImportManager>>();
77-
var importManager = new ImportManager(sessionStateContainer, traceChangeManager, fileInputManagerMock.Object, textImportServiceMock.Object, loggerMock.Object);
78-
var testHelper = new TestHelper();
77+
var importManager = new ImportManager(sessionStateContainer, traceChangeManagerMock.Object, fileInputManagerMock.Object, textImportServiceMock.Object, loggerMock.Object);
7978
sessionStateContainer.Importfile = new Importfile()
8079
{
8180
FileContent = "This is just a test",
@@ -101,6 +100,8 @@ public async Task AnalyseImportfile_WithTextfile_SetsImportCuesheet()
101100
Assert.AreEqual(importCuesheet.Tracks.First().Position, sessionStateContainer.ImportCuesheet.Tracks.First().Position);
102101
Assert.AreEqual(importCuesheet.Tracks.First().PreGap, sessionStateContainer.ImportCuesheet.Tracks.First().PreGap);
103102
Assert.AreEqual(importCuesheet.Tracks.First().PostGap, sessionStateContainer.ImportCuesheet.Tracks.First().PostGap);
103+
traceChangeManagerMock.Verify(x => x.TraceChanges(It.IsAny<Cuesheet>()));
104+
traceChangeManagerMock.Verify(x => x.TraceChanges(It.IsAny<Track>()));
104105
}
105106

106107
[TestMethod()]
@@ -120,7 +121,6 @@ public async Task AnalyseImportfile_WithoutAnalysedCuesheet_DoesNothing()
120121
textImportServiceMock.Setup(x => x.AnalyseAsync(fileContent)).ReturnsAsync(importfile);
121122
var loggerMock = new Mock<ILogger<ImportManager>>();
122123
var importManager = new ImportManager(sessionStateContainer, traceChangeManager, fileInputManagerMock.Object, textImportServiceMock.Object, loggerMock.Object);
123-
var testHelper = new TestHelper();
124124
sessionStateContainer.Importfile = importfile;
125125
// Act
126126
await importManager.AnalyseImportfile();
@@ -207,6 +207,51 @@ public async Task ImportFilesAsync_TextFile_ImportsCorrectly()
207207
Assert.AreEqual(ImportFileType.Textfile, sessionStateContainer.Importfile.FileType);
208208
}
209209

210+
[TestMethod]
211+
public void ImportCuesheet_WithImportCuesheetAvailable_ImportsCuesheetData()
212+
{
213+
// Arrange
214+
var traceChangeManagerMock = new Mock<ITraceChangeManager>();
215+
var sessionStateContainer = new SessionStateContainer(traceChangeManagerMock.Object);
216+
var analyzedCuesheet = new Cuesheet()
217+
{
218+
Artist = "Artist 123",
219+
Title = "Title 456"
220+
};
221+
analyzedCuesheet.AddTrack(new()
222+
{
223+
Artist = "Track Artist 1",
224+
Title = "Track Title 1",
225+
End = new TimeSpan(0, 4, 23),
226+
});
227+
analyzedCuesheet.AddTrack(new()
228+
{
229+
Artist = "Track Artist 2",
230+
Title = "Track Title 2",
231+
End = new TimeSpan(0, 8, 54),
232+
});
233+
sessionStateContainer.ImportCuesheet = analyzedCuesheet;
234+
var fileInputManagerMock = new Mock<IFileInputManager>();
235+
var textImportServiceMock = new Mock<ITextImportService>();
236+
var loggerMock = new Mock<ILogger<ImportManager>>();
237+
var importManager = new ImportManager(sessionStateContainer, traceChangeManagerMock.Object, fileInputManagerMock.Object, textImportServiceMock.Object, loggerMock.Object);
238+
// Act
239+
importManager.ImportCuesheet();
240+
// Assert
241+
Assert.AreEqual(analyzedCuesheet.Artist, sessionStateContainer.Cuesheet.Artist);
242+
Assert.AreEqual(analyzedCuesheet.Title, sessionStateContainer.Cuesheet.Title);
243+
Assert.AreEqual(analyzedCuesheet.Tracks.First().Artist, sessionStateContainer.Cuesheet.Tracks.First().Artist);
244+
Assert.AreEqual(analyzedCuesheet.Tracks.First().Title, sessionStateContainer.Cuesheet.Tracks.First().Title);
245+
Assert.AreEqual(analyzedCuesheet.Tracks.First().Begin, sessionStateContainer.Cuesheet.Tracks.First().Begin);
246+
Assert.AreEqual(analyzedCuesheet.Tracks.First().End, sessionStateContainer.Cuesheet.Tracks.First().End);
247+
Assert.AreEqual(analyzedCuesheet.Tracks.Last().Artist, sessionStateContainer.Cuesheet.Tracks.Last().Artist);
248+
Assert.AreEqual(analyzedCuesheet.Tracks.Last().Title, sessionStateContainer.Cuesheet.Tracks.Last().Title);
249+
Assert.AreEqual(analyzedCuesheet.Tracks.Last().Begin, sessionStateContainer.Cuesheet.Tracks.Last().Begin);
250+
Assert.AreEqual(analyzedCuesheet.Tracks.Last().End, sessionStateContainer.Cuesheet.Tracks.Last().End);
251+
traceChangeManagerMock.Verify(x => x.RemoveTracedChanges(It.IsAny<Cuesheet>()));
252+
traceChangeManagerMock.Verify(x => x.RemoveTracedChanges(It.IsAny<Track>()));
253+
}
254+
210255
private static IBrowserFile CreateBrowserFileMock(string name, string content = "TestContent")
211256
{
212257
var fileMock = new Mock<IBrowserFile>();

AudioCuesheetEditor/Services/IO/ImportManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public async Task ImportFilesAsync(IEnumerable<IBrowserFile> files)
8888
stopwatch.Stop();
8989
_logger.LogDebug("ImportFilesAsync duration: {stopwatch.Elapsed}", stopwatch.Elapsed);
9090
}
91-
//TODO: Tests
91+
9292
public async Task AnalyseImportfile()
9393
{
9494
ResetTracing();
@@ -129,7 +129,7 @@ public async Task AnalyseImportfile()
129129
stopwatch.Stop();
130130
_logger.LogDebug("ImportTextAsync duration: {stopwatch.Elapsed}", stopwatch.Elapsed);
131131
}
132-
//TODO: Tests
132+
133133
public void ImportCuesheet()
134134
{
135135
var stopwatch = Stopwatch.StartNew();

0 commit comments

Comments
 (0)