Initial commit — AllMusicGuide scraper and music metadata tagger
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user