Skip to content

Commit

Permalink
VorbisTag : Unit test for multiple values in additional fields
Browse files Browse the repository at this point in the history
  • Loading branch information
Zeugma440 committed Jan 25, 2025
1 parent 2267f39 commit 0a58537
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 7 deletions.
2 changes: 1 addition & 1 deletion ATL.unit-test/IO/HighLevel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1005,7 +1005,7 @@ public void StreamedIO_R_Audio()
[TestMethod]
public void TagIO_R_VorbisFLAC_multipleArtists()
{
string resource = "FLAC/multiple_artists.flac";
string resource = "FLAC/multiple_artists_custom.flac";
string testFileLocation = TestUtils.CopyAsTempTestFile(resource);

Track theTrack = new Track(testFileLocation);
Expand Down
20 changes: 18 additions & 2 deletions ATL.unit-test/IO/MetaData/Vorbis_FLAC.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,11 @@ public void TagIO_R_VorbisFLAC_dirtyTrackDiscNumbering()
}

[TestMethod]
public void TagIO_RW_VorbisFLAC_multipleArtists()
public void TagIO_RW_VorbisFLAC_multipleArtistsCustom()
{
new ConsoleLogger();

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

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

// 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)
Expand All @@ -139,6 +147,11 @@ public void TagIO_RW_VorbisFLAC_multipleArtists()
// Write and modify
theTag = new TagHolder();
theTag.Artist = "aaa" + ATL.Settings.DisplayValueSeparator + "bbb" + ATL.Settings.DisplayValueSeparator + "ccc";
additionalFields = new Dictionary<string, string>
{
{ "CUSTOMSTUFF", "1" + ATL.Settings.DisplayValueSeparator + "2" + ATL.Settings.DisplayValueSeparator + "3"}
};
theTag.AdditionalFields = additionalFields;
Assert.IsTrue(theFile.UpdateTagInFileAsync(theTag.tagData, MetaDataIOFactory.TagType.NATIVE).GetAwaiter().GetResult());

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

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

// Get rid of the working copy
if (Settings.DeleteAfterSuccess) File.Delete(testFileLocation);
Expand Down
Binary file not shown.
5 changes: 1 addition & 4 deletions ATL.unit-test/TestUtils.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Security.Cryptography;
using System.Text;

namespace ATL.test
Expand Down

0 comments on commit 0a58537

Please sign in to comment.