public void SerializeDataSetProperty()
    {
      DataSet ds = new DataSet();
      ds.Tables.Add(CreateDataTable("FirstTable", 2));
      ds.Tables.Add(CreateDataTable("SecondTable", 1));

      DataSetAndTableTestClass c = new DataSetAndTableTestClass
        {
          Before = "Before",
          Set = ds,
          Middle = "Middle",
          Table = CreateDataTable("LoneTable", 2),
          After = "After"
        };

      string json = JsonConvert.SerializeObject(c, Formatting.Indented, new IsoDateTimeConverter());

      Assert.AreEqual(@"{
  ""Before"": ""Before"",
  ""Set"": {
    ""FirstTable"": [
      {
        ""StringCol"": ""Item Name"",
        ""Int32Col"": 1,
        ""BooleanCol"": true,
        ""TimeSpanCol"": ""10.22:10:15.1000000"",
        ""DateTimeCol"": ""2000-12-29T00:00:00Z"",
        ""DecimalCol"": 64.0021
      },
      {
        ""StringCol"": ""Item Name"",
        ""Int32Col"": 2,
        ""BooleanCol"": true,
        ""TimeSpanCol"": ""10.22:10:15.1000000"",
        ""DateTimeCol"": ""2000-12-29T00:00:00Z"",
        ""DecimalCol"": 64.0021
      }
    ],
    ""SecondTable"": [
      {
        ""StringCol"": ""Item Name"",
        ""Int32Col"": 1,
        ""BooleanCol"": true,
        ""TimeSpanCol"": ""10.22:10:15.1000000"",
        ""DateTimeCol"": ""2000-12-29T00:00:00Z"",
        ""DecimalCol"": 64.0021
      }
    ]
  },
  ""Middle"": ""Middle"",
  ""Table"": [
    {
      ""StringCol"": ""Item Name"",
      ""Int32Col"": 1,
      ""BooleanCol"": true,
      ""TimeSpanCol"": ""10.22:10:15.1000000"",
      ""DateTimeCol"": ""2000-12-29T00:00:00Z"",
      ""DecimalCol"": 64.0021
    },
    {
      ""StringCol"": ""Item Name"",
      ""Int32Col"": 2,
      ""BooleanCol"": true,
      ""TimeSpanCol"": ""10.22:10:15.1000000"",
      ""DateTimeCol"": ""2000-12-29T00:00:00Z"",
      ""DecimalCol"": 64.0021
    }
  ],
  ""After"": ""After""
}", json);

      DataSetAndTableTestClass c2 = JsonConvert.DeserializeObject<DataSetAndTableTestClass>(json, new IsoDateTimeConverter());

      Assert.AreEqual(c.Before, c2.Before);
      Assert.AreEqual(c.Set.Tables.Count, c2.Set.Tables.Count);
      Assert.AreEqual(c.Middle, c2.Middle);
      Assert.AreEqual(c.Table.Rows.Count, c2.Table.Rows.Count);
      Assert.AreEqual(c.After, c2.After);
    }
Ejemplo n.º 2
0
        public void SerializeDataSetProperty()
        {
            DataSet ds = new DataSet();

            ds.Tables.Add(CreateDataTable("FirstTable", 2));
            ds.Tables.Add(CreateDataTable("SecondTable", 1));

            DataSetAndTableTestClass c = new DataSetAndTableTestClass
            {
                Before = "Before",
                Set    = ds,
                Middle = "Middle",
                Table  = CreateDataTable("LoneTable", 2),
                After  = "After"
            };

            string json = JsonConvert.SerializeObject(c, Formatting.Indented, new IsoDateTimeConverter());

            StringAssert.AreEqual(@"{
  ""Before"": ""Before"",
  ""Set"": {
    ""FirstTable"": [
      {
        ""StringCol"": ""Item Name"",
        ""Int32Col"": 1,
        ""BooleanCol"": true,
        ""TimeSpanCol"": ""10.22:10:15.1000000"",
        ""DateTimeCol"": ""2000-12-29T00:00:00Z"",
        ""DecimalCol"": 64.0021
      },
      {
        ""StringCol"": ""Item Name"",
        ""Int32Col"": 2,
        ""BooleanCol"": true,
        ""TimeSpanCol"": ""10.22:10:15.1000000"",
        ""DateTimeCol"": ""2000-12-29T00:00:00Z"",
        ""DecimalCol"": 64.0021
      }
    ],
    ""SecondTable"": [
      {
        ""StringCol"": ""Item Name"",
        ""Int32Col"": 1,
        ""BooleanCol"": true,
        ""TimeSpanCol"": ""10.22:10:15.1000000"",
        ""DateTimeCol"": ""2000-12-29T00:00:00Z"",
        ""DecimalCol"": 64.0021
      }
    ]
  },
  ""Middle"": ""Middle"",
  ""Table"": [
    {
      ""StringCol"": ""Item Name"",
      ""Int32Col"": 1,
      ""BooleanCol"": true,
      ""TimeSpanCol"": ""10.22:10:15.1000000"",
      ""DateTimeCol"": ""2000-12-29T00:00:00Z"",
      ""DecimalCol"": 64.0021
    },
    {
      ""StringCol"": ""Item Name"",
      ""Int32Col"": 2,
      ""BooleanCol"": true,
      ""TimeSpanCol"": ""10.22:10:15.1000000"",
      ""DateTimeCol"": ""2000-12-29T00:00:00Z"",
      ""DecimalCol"": 64.0021
    }
  ],
  ""After"": ""After""
}", json);

            DataSetAndTableTestClass c2 = JsonConvert.DeserializeObject <DataSetAndTableTestClass>(json, new IsoDateTimeConverter());

            Assert.AreEqual(c.Before, c2.Before);
            Assert.AreEqual(c.Set.Tables.Count, c2.Set.Tables.Count);
            Assert.AreEqual(c.Middle, c2.Middle);
            Assert.AreEqual(c.Table.Rows.Count, c2.Table.Rows.Count);
            Assert.AreEqual(c.After, c2.After);
        }