Json.NET
Code Coverage Statistics for Source File

Newtonsoft.Json.Tests\Converters\ObjectIdConverterTests.cs

Symbol Coverage: 100.00% (15 of 15)

Branch Coverage: 100.00% (3 of 3)

Cyclomatic Complexity Avg: 1.00 Max:1

Code Lines: 19


L V Source
1
using System;
2
using System.Collections.Generic;
3
using System.IO;
4
using System.Linq;
5
using System.Text;
6
using Newtonsoft.Json.Bson;
7
using Newtonsoft.Json.Tests.TestObjects;
8
using Newtonsoft.Json.Utilities;
9
using NUnit.Framework;
10

  
11
namespace Newtonsoft.Json.Tests.Converters
12
{
13
  public class ObjectIdConverterTests : TestFixtureBase
14
  {
15
    public class ObjectIdTestClass
16
    {
17
      [JsonProperty("_id")]
18
      public BsonObjectId Id { get; set; }
19
      [JsonProperty("test")]
20
      public string Test { get; set; }
21
    }
22

  
23
    [Test]
24
    public void Serialize()
25
    {
26
 1
      ObjectIdTestClass c = new ObjectIdTestClass
27
 1
                              {
28
 1
                                Id = new BsonObjectId(MiscellaneousUtils.HexToBytes("4ABBED9D1D8B0F0218000001")),
29
 1
                                Test = "1234£56"
30
 1
                              };
31

  
32
 1
      MemoryStream ms = new MemoryStream();
33
 1
      JsonSerializer serializer = new JsonSerializer();
34

  
35
      // serialize product to BSON
36
 1
      BsonWriter writer = new BsonWriter(ms);
37
 1
      serializer.Serialize(writer, c);
38

  
39
 1
      byte[] expected = MiscellaneousUtils.HexToBytes("29000000075F6964004ABBED9D1D8B0F02180000010274657374000900000031323334C2A335360000");
40

  
41
 1
      Assert.AreEqual(expected, ms.ToArray());
42
 1
    }
43

  
44
    [Test]
45
    public void Deserialize()
46
    {
47
 1
      byte[] bson = MiscellaneousUtils.HexToBytes("29000000075F6964004ABBED9D1D8B0F02180000010274657374000900000031323334C2A335360000");
48

  
49
 1
      JsonSerializer serializer = new JsonSerializer();
50

  
51
 1
      BsonReader reader = new BsonReader(new MemoryStream(bson));
52
 1
      ObjectIdTestClass c = serializer.Deserialize<ObjectIdTestClass>(reader);
53

  
54
 1
      Assert.AreEqual(c.Id.Value, MiscellaneousUtils.HexToBytes("4ABBED9D1D8B0F0218000001"));
55
 1
      Assert.AreEqual(c.Test, "1234£56");
56
 1
    }
57
  }
58
}