Initial commit — AllMusicGuide scraper and music metadata tagger

This commit is contained in:
2026-05-10 02:49:16 +00:00
commit 4a541ca04b
194 changed files with 46364 additions and 0 deletions
@@ -0,0 +1,93 @@
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;
namespace MusicMetaTagger.Client.AllMusicGuide.Tests
{
public static class SerializationTester
{
private static void AssertFormatterSerializable(IFormatter formatter, object o)
{
var stream = new MemoryStream();
try
{
formatter.Serialize(stream, o);
}
catch (Exception ex)
{
throw (new NotSupportedException("The object failed serialization.", ex));
}
stream.Seek(0, SeekOrigin.Begin);
object temp;
try
{
temp = formatter.Deserialize(stream);
}
catch (Exception ex)
{
throw (new NotSupportedException("The object failed deserialization.", ex));
}
EqualityTester.AssertEqual(o, temp);
}
public static void AssertBinarySerializable(object o)
{
var formatter = new BinaryFormatter();
try
{
AssertFormatterSerializable(formatter, o);
}
catch (NotSupportedException ex)
{
throw (new NotSupportedException("The object failed binary serialization or deserialization.", ex));
}
}
public static void AssertXmlSerializable(object o)
{
var t = o.GetType();
var serializer = new XmlSerializer(t);
var stream = new MemoryStream();
try
{
serializer.Serialize(stream, o);
}
catch (Exception ex)
{
throw (new NotSupportedException("The object failed XML serialization.", ex));
}
stream.Seek(0, SeekOrigin.Begin);
object temp;
try
{
temp = serializer.Deserialize(stream);
}
catch (Exception ex)
{
throw (new NotSupportedException("The object failed XML deserialization.", ex));
}
EqualityTester.AssertEqual(o, temp);
}
public static void AssertSerializable(object o)
{
AssertBinarySerializable(o);
AssertXmlSerializable(o);
}
}
}