Skip to content

Commit d032f65

Browse files
committed
#14: Add track number to available placeholders [add unit test for custom metadata field]
1 parent 6e1835e commit d032f65

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

Test/Business/NowPlayingToFileManagerTest.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,4 +327,15 @@ public void uncaughtException() {
327327
actual!.song.Should().BeSameAs(song);
328328
}
329329

330+
[Fact]
331+
public void queryCustomMetadataFieldFromWinamp() {
332+
A.CallTo(() => winampController.fetchMetadataFieldValue("CustomField")).Returns("CustomValue");
333+
334+
A.CallTo(() => settings.textTemplate).Returns("{{CustomField}}");
335+
settings.settingsUpdated += Raise.WithEmpty();
336+
337+
File.ReadAllText(textFilename).Should().Be("CustomValue");
338+
A.CallTo(() => winampController.fetchMetadataFieldValue("CustomField")).MustHaveHappenedOnceExactly();
339+
}
340+
330341
}

WinampNowPlayingToFile/Facade/WinampControllerImpl.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,19 @@ public void stop() {
6868

6969
public object fetchMetadataFieldValue(string metadataFieldName) {
7070
metadataFieldName = metadataFieldName.ToLowerInvariant();
71+
string songFilename = winamp.CurrentSong.Filename;
7172

7273
try {
7374
if (metadataFieldName == "filebasename") {
74-
return Path.GetFileName(winamp.CurrentSong.Filename);
75+
return Path.GetFileName(songFilename);
7576
} else if (metadataFieldName == "filebasenamewithoutextension") {
76-
return Path.GetFileNameWithoutExtension(winamp.CurrentSong.Filename);
77+
return Path.GetFileNameWithoutExtension(songFilename);
7778
}
7879
} catch (ArgumentException) {
7980
return string.Empty;
8081
}
8182

82-
string value = getMetadata(winamp.CurrentSong.Filename, metadataFieldName);
83+
string value = getMetadata(songFilename, metadataFieldName);
8384

8485
return metadataFieldName switch {
8586
"length" when long.TryParse(value, out long length) => TimeSpan.FromMilliseconds(length),

0 commit comments

Comments
 (0)