public void reading_and_writing_CKExceptionData_with_BinaryWriter_and_BinaryReader()
{
var dataE0 = CKExceptionData.CreateFrom( ThrowAggregatedException() );
var dataE1 = CKExceptionData.CreateFrom( ThrowSimpleException( "Test Message" ) );
var dataE2 = CKExceptionData.CreateFrom( ThrowLoaderException() );
var dataE3 = CKExceptionData.CreateFrom( ThrowExceptionWithInner() );
var dataE4 = CKExceptionData.CreateFrom( ThrowTwoInnerExceptions() );
using( var mem = new MemoryStream() )
{
CKBinaryWriter w = new CKBinaryWriter( mem );
dataE0.Write( w );
dataE1.Write( w );
dataE2.Write( w );
dataE3.Write( w );
dataE4.Write( w );
mem.Position = 0;
var r = new CKBinaryReader( mem );
var data0 = new CKExceptionData( r, StringAndStringBuilderExtension.IsCRLF );
Assert.AreEqual( data0.ToString(), dataE0.ToString() );
var data1 = new CKExceptionData( r, StringAndStringBuilderExtension.IsCRLF );
Assert.AreEqual( data1.ToString(), dataE1.ToString() );
var data2 = new CKExceptionData( r, StringAndStringBuilderExtension.IsCRLF );
Assert.AreEqual( data2.ToString(), dataE2.ToString() );
var data3 = new CKExceptionData( r, StringAndStringBuilderExtension.IsCRLF );
Assert.AreEqual( data3.ToString(), dataE3.ToString() );
var data4 = new CKExceptionData( r, StringAndStringBuilderExtension.IsCRLF );
Assert.AreEqual( data4.ToString(), dataE4.ToString() );
}
}