Skip to content

Commit 588d305

Browse files
fix export profile validation
1 parent c3701c3 commit 588d305

2 files changed

Lines changed: 40 additions & 0 deletions

File tree

AudioCuesheetEditor.Tests/Services/IO/ExportfileGeneratorTests.cs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,5 +220,44 @@ public void GenerateExportFile_ShouldHandleEmptyProfile()
220220
Assert.AreEqual(new TimeSpan(0, 8, 32), result.First().End);
221221
Assert.IsNotNull(result.First().Content);
222222
}
223+
224+
[TestMethod]
225+
public void GenerateExportFile_ReturnsEmpty_WithInvalidTracks()
226+
{
227+
// Arrange
228+
var exportProfile = new Exportprofile
229+
{
230+
Name = "TestProfile",
231+
SchemeHead = "%Cuesheet.Artist% - %Cuesheet.Title%",
232+
SchemeTracks = "%Track.Position% %Track.Artist% - %Track.Title%",
233+
Filename = "TestExport.txt"
234+
};
235+
var cuesheet = new Cuesheet()
236+
{
237+
Artist = "Test artist cuesheet",
238+
Title = "Test title cuesheet",
239+
Audiofile = new Audiofile("Test audiofile.mp3")
240+
};
241+
cuesheet.AddTrack(new Track()
242+
{
243+
Artist = "Test artist 1",
244+
Title = "Test title 1",
245+
Begin = TimeSpan.Zero,
246+
Position = 1
247+
});
248+
cuesheet.AddTrack(new Track()
249+
{
250+
Artist = "Test artist 2",
251+
Title = "Test title 2",
252+
Position = 2
253+
});
254+
mockSessionStateContainer.SetupProperty(x => x.Cuesheet, cuesheet);
255+
256+
// Act
257+
var result = exportfileGenerator.GenerateExportfiles(exportProfile);
258+
259+
// Assert
260+
Assert.AreEqual(0, result.Count);
261+
}
223262
}
224263
}

AudioCuesheetEditor/Services/IO/ExportfileGenerator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public IEnumerable<ValidationMessage> CanGenerateExportfiles(Exportprofile? expo
3838
validationMessages.Add(new ValidationMessage("No exportprofile selected!"));
3939
}
4040
validationMessages.AddRange(_sessionStateContainer.Cuesheet.Validate().ValidationMessages);
41+
validationMessages.AddRange(_sessionStateContainer.Cuesheet.Tracks.Select(x => x.Validate()).SelectMany(x => x.ValidationMessages));
4142
return validationMessages;
4243
}
4344

0 commit comments

Comments
 (0)