Skip to content

Commit 0a58537

Browse files
committed
VorbisTag : Unit test for multiple values in additional fields
1 parent 2267f39 commit 0a58537

File tree

4 files changed

+20
-7
lines changed

4 files changed

+20
-7
lines changed

ATL.unit-test/IO/HighLevel.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,7 @@ public void StreamedIO_R_Audio()
10051005
[TestMethod]
10061006
public void TagIO_R_VorbisFLAC_multipleArtists()
10071007
{
1008-
string resource = "FLAC/multiple_artists.flac";
1008+
string resource = "FLAC/multiple_artists_custom.flac";
10091009
string testFileLocation = TestUtils.CopyAsTempTestFile(resource);
10101010

10111011
Track theTrack = new Track(testFileLocation);

ATL.unit-test/IO/MetaData/Vorbis_FLAC.cs

+18-2
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,11 @@ public void TagIO_R_VorbisFLAC_dirtyTrackDiscNumbering()
104104
}
105105

106106
[TestMethod]
107-
public void TagIO_RW_VorbisFLAC_multipleArtists()
107+
public void TagIO_RW_VorbisFLAC_multipleArtistsCustom()
108108
{
109109
new ConsoleLogger();
110110

111-
string fileName = "FLAC/multiple_artists.flac";
111+
string fileName = "FLAC/multiple_artists_custom.flac";
112112
string location = TestUtils.GetResourceLocationRoot() + fileName;
113113
string testFileLocation = TestUtils.CopyAsTempTestFile(fileName);
114114
AudioDataManager theFile = new AudioDataManager(AudioDataIOFactory.GetInstance().GetFromPath(testFileLocation));
@@ -122,10 +122,18 @@ public void TagIO_RW_VorbisFLAC_multipleArtists()
122122
// Read
123123
Assert.AreEqual("lovesick (feat. Punipuni Denki)", meta.Title);
124124
Assert.AreEqual("Kamome Sano" + ATL.Settings.InternalValueSeparator + "Punipuni Denki", meta.Artist);
125+
string customStuff = "";
126+
meta.AdditionalFields.TryGetValue("CUSTOMSTUFF", out customStuff);
127+
Assert.AreEqual("1" + ATL.Settings.InternalValueSeparator + "2", customStuff);
125128

126129
// Write same data and keep initial format
127130
TagHolder theTag = new TagHolder();
128131
theTag.Artist = "Kamome Sano" + ATL.Settings.DisplayValueSeparator + "Punipuni Denki";
132+
var additionalFields = new Dictionary<string, string>
133+
{
134+
{ "CUSTOMSTUFF", "1" + ATL.Settings.DisplayValueSeparator + "2" }
135+
};
136+
theTag.AdditionalFields = additionalFields;
129137
Assert.IsTrue(theFile.UpdateTagInFileAsync(theTag.tagData, MetaDataIOFactory.TagType.NATIVE).GetAwaiter().GetResult());
130138

131139
// Check that the resulting file (working copy that has been tagged, then untagged) remains identical to the original file (i.e. no byte lost nor added)
@@ -139,6 +147,11 @@ public void TagIO_RW_VorbisFLAC_multipleArtists()
139147
// Write and modify
140148
theTag = new TagHolder();
141149
theTag.Artist = "aaa" + ATL.Settings.DisplayValueSeparator + "bbb" + ATL.Settings.DisplayValueSeparator + "ccc";
150+
additionalFields = new Dictionary<string, string>
151+
{
152+
{ "CUSTOMSTUFF", "1" + ATL.Settings.DisplayValueSeparator + "2" + ATL.Settings.DisplayValueSeparator + "3"}
153+
};
154+
theTag.AdditionalFields = additionalFields;
142155
Assert.IsTrue(theFile.UpdateTagInFileAsync(theTag.tagData, MetaDataIOFactory.TagType.NATIVE).GetAwaiter().GetResult());
143156

144157
// Read again
@@ -149,6 +162,9 @@ public void TagIO_RW_VorbisFLAC_multipleArtists()
149162
Assert.IsTrue(meta.Exists);
150163

151164
Assert.AreEqual("aaa" + ATL.Settings.InternalValueSeparator + "bbb" + ATL.Settings.InternalValueSeparator + "ccc", meta.Artist);
165+
customStuff = "";
166+
meta.AdditionalFields.TryGetValue("CUSTOMSTUFF", out customStuff);
167+
Assert.AreEqual("1" + ATL.Settings.InternalValueSeparator + "2" + ATL.Settings.InternalValueSeparator + "3", customStuff);
152168

153169
// Get rid of the working copy
154170
if (Settings.DeleteAfterSuccess) File.Delete(testFileLocation);

ATL.unit-test/TestUtils.cs

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.IO;
4-
using System.Security.Cryptography;
1+
using System.Security.Cryptography;
52
using System.Text;
63

74
namespace ATL.test

0 commit comments

Comments
 (0)