2 using System.Collections.Generic;
3 #if !SILVERLIGHT && !PocketPC && !NET20
4 using System.Data.Linq;
7 using System.Data.SqlTypes;
11 using Newtonsoft.Json.Converters;
12 using NUnit.Framework;
13 using Newtonsoft.Json.Tests.TestObjects;
15 namespace Newtonsoft.Json.Tests.Converters
17 public class BinaryConverterTests : TestFixtureBase
19 private static readonly byte[] TestData = Encoding.UTF8.GetBytes("This is some test data!!!");
21 public class ByteArrayClass
23 public byte[] ByteArray { get; set; }
24 public byte[] NullByteArray { get; set; }
27 #if !SILVERLIGHT && !PocketPC && !NET20
29 public void DeserializeBinaryClass()
32 ""Binary"": ""VGhpcyBpcyBzb21lIHRlc3QgZGF0YSEhIQ=="",
36 BinaryClass binaryClass = JsonConvert.DeserializeObject<BinaryClass>(json, new BinaryConverter());
38 Assert.AreEqual(new Binary(TestData), binaryClass.Binary);
39 Assert.AreEqual(null, binaryClass.NullBinary);
42 public class BinaryClass
44 public Binary Binary { get; set; }
45 public Binary NullBinary { get; set; }
49 public void SerializeBinaryClass()
51 BinaryClass binaryClass = new BinaryClass();
52 binaryClass.Binary = new Binary(TestData);
53 binaryClass.NullBinary = null;
55 string json = JsonConvert.SerializeObject(binaryClass, Formatting.Indented, new BinaryConverter());
58 ""Binary"": ""VGhpcyBpcyBzb21lIHRlc3QgZGF0YSEhIQ=="",
65 public void SerializeByteArrayClass()
67 ByteArrayClass byteArrayClass = new ByteArrayClass();
68 byteArrayClass.ByteArray = TestData;
69 byteArrayClass.NullByteArray = null;
71 string json = JsonConvert.SerializeObject(byteArrayClass, Formatting.Indented, new BinaryConverter());
74 ""ByteArray"": ""VGhpcyBpcyBzb21lIHRlc3QgZGF0YSEhIQ=="",
75 ""NullByteArray"": null
80 public class SqlBinaryClass
82 public SqlBinary SqlBinary { get; set; }
83 public SqlBinary? NullableSqlBinary1 { get; set; }
84 public SqlBinary? NullableSqlBinary2 { get; set; }
88 public void SerializeSqlBinaryClass()
90 SqlBinaryClass sqlBinaryClass = new SqlBinaryClass();
91 sqlBinaryClass.SqlBinary = new SqlBinary(TestData);
92 sqlBinaryClass.NullableSqlBinary1 = new SqlBinary(TestData);
93 sqlBinaryClass.NullableSqlBinary2 = null;
95 string json = JsonConvert.SerializeObject(sqlBinaryClass, Formatting.Indented, new BinaryConverter());
98 ""SqlBinary"": ""VGhpcyBpcyBzb21lIHRlc3QgZGF0YSEhIQ=="",
99 ""NullableSqlBinary1"": ""VGhpcyBpcyBzb21lIHRlc3QgZGF0YSEhIQ=="",
100 ""NullableSqlBinary2"": null
105 public void DeserializeSqlBinaryClass()
108 ""SqlBinary"": ""VGhpcyBpcyBzb21lIHRlc3QgZGF0YSEhIQ=="",
109 ""NullableSqlBinary1"": ""VGhpcyBpcyBzb21lIHRlc3QgZGF0YSEhIQ=="",
110 ""NullableSqlBinary2"": null
113 SqlBinaryClass sqlBinaryClass = JsonConvert.DeserializeObject<SqlBinaryClass>(json, new BinaryConverter());
115 Assert.AreEqual(new SqlBinary(TestData), sqlBinaryClass.SqlBinary);
116 Assert.AreEqual(new SqlBinary(TestData), sqlBinaryClass.NullableSqlBinary1);
117 Assert.AreEqual(null, sqlBinaryClass.NullableSqlBinary2);
122 public void DeserializeByteArrayClass()
125 ""ByteArray"": ""VGhpcyBpcyBzb21lIHRlc3QgZGF0YSEhIQ=="",
126 ""NullByteArray"": null
129 ByteArrayClass byteArrayClass = JsonConvert.DeserializeObject<ByteArrayClass>(json, new BinaryConverter());
131 Assert.AreEqual(TestData, byteArrayClass.ByteArray);
132 Assert.AreEqual(null, byteArrayClass.NullByteArray);