Skip to content

Commit

Permalink
Added failing unit-tests for arrays, enumerables, etc
Browse files Browse the repository at this point in the history
  • Loading branch information
BlueRaja committed Jun 15, 2015
1 parent 6d927c1 commit e203343
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions src/JsonParser.Tests/JsonParserTests.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using NUnit.Framework;

namespace Json.Tests
Expand Down Expand Up @@ -217,6 +218,70 @@ public void Can_ignore_solidus_in_string_literals()
Assert.AreEqual(expected, actual.Value);
}


public class DogArray
{
public Dog[] Dogs { get; set; }
}

public class DogEnumerable
{
public IEnumerable<Dog> Dogs { get; set; }
}

public class DogList
{
public List<Dog> Dogs { get; set; }
}

[Test]
public void Can_parse_typed_arrays()
{
var dogArray = JsonParser.Deserialize<DogArray>(@"{""dogs"":[{""name"":""dog0""},{""name"":""dog1""}]}");
Assert.AreEqual(dogArray.Dogs.Length, 2);
Assert.AreEqual(dogArray.Dogs[0].Name, "dog0");
Assert.AreEqual(dogArray.Dogs[1].Name, "dog1");
}

[Test]
public void Can_parse_typed_arrays_empty()
{
var dogArray = JsonParser.Deserialize<DogArray>(@"{""dogs"":[]}");
Assert.AreEqual(dogArray.Dogs.Length, 0);
}

[Test]
public void Can_parse_typed_enumerables()
{
var dogEnumerable = JsonParser.Deserialize<DogEnumerable>(@"{""dogs"":[{""name"":""dog0""},{""name"":""dog1""}]}");
Assert.AreEqual(dogEnumerable.Dogs.Count(), 2);
Assert.AreEqual(dogEnumerable.Dogs.First().Name, "dog0");
Assert.AreEqual(dogEnumerable.Dogs.Last().Name, "dog1");
}

[Test]
public void Can_parse_typed_enumerables_empty()
{
var dogEnumerable = JsonParser.Deserialize<DogEnumerable>(@"{""dogs"":[]}");
Assert.AreEqual(dogEnumerable.Dogs.Count(), 0);
}

[Test]
public void Can_parse_typed_lists()
{
var dogList = JsonParser.Deserialize<DogList>(@"{""dogs"":[{""name"":""dog0""},{""name"":""dog1""}]}");
Assert.AreEqual(dogList.Dogs.Count, 2);
Assert.AreEqual(dogList.Dogs[0].Name, "dog0");
Assert.AreEqual(dogList.Dogs[1].Name, "dog1");
}

[Test]
public void Can_parse_typed_lists_empty()
{
var dogList = JsonParser.Deserialize<DogList>(@"{""dogs"":[]}");
Assert.AreEqual(dogList.Dogs.Count, 0);
}

#if NET40
[Test]
public void Can_deserialize_simple_dynamic_object()
Expand Down

0 comments on commit e203343

Please sign in to comment.