public void EqualIntArrays()
 {
     var expected = new[] { 1, 2, 3 };
     var actual = new[] { 1, 2, 3 };
     JsonSerializerAssert.Equal(expected, actual);
     JsonSerializerAssert.Equal(expected, actual, this.serializerSettings);
 }
 public void ArrayOfDummies()
 {
     var actual = new[] { new Dummy(1), new Dummy(2), new Dummy(3), };
     var roundtrips = new[]
                          {
                              JsonSerializerAssert.Roundtrip(actual),
                              JsonSerializerAssert.Roundtrip(actual, this.serializerSettings),
                          };
     foreach (var roundtrip in roundtrips)
     {
         Assert.AreNotSame(actual, roundtrip);
         CollectionAssert.AreEqual(new[] { new Dummy(1), new Dummy(2), new Dummy(3), }, actual, Dtos.Dummy.Comparer);
         CollectionAssert.AreEqual(new[] { new Dummy(1), new Dummy(2), new Dummy(3), }, roundtrip, Dtos.Dummy.Comparer);
     }
 }
 public void ArrayOfInts()
 {
     var actual = new[] { 1, 2, 3 };
     var roundtrips = new[]
                          {
                              JsonSerializerAssert.Roundtrip(actual),
                              JsonSerializerAssert.Roundtrip(actual, this.serializerSettings),
                          };
     foreach (var roundtrip in roundtrips)
     {
         Assert.AreNotSame(actual, roundtrip);
         CollectionAssert.AreEqual(new[] { 1, 2, 3 }, actual);
         CollectionAssert.AreEqual(new[] { 1, 2, 3 }, roundtrip);
     }
 }
 public void WithDummy()
 {
     var actual = new WithDummy { Dummy = new Dummy { Value = 2 } };
     var roundtrips = new[]
                          {
                              JsonSerializerAssert.Roundtrip(actual),
                              JsonSerializerAssert.Roundtrip(actual, this.serializerSettings),
                          };
     foreach (var roundtrip in roundtrips)
     {
         Assert.AreNotSame(actual, roundtrip);
         Assert.AreEqual(2, actual.Dummy.Value);
         Assert.AreEqual(2, roundtrip.Dummy.Value);
     }
 }
 public void WithWrongCtorParameter()
 {
     var actual = new WithWrongCtorParameter("meh");
     var expectedJson = "{\"Name\":\"meh\"}";
     var exceptions = new[]
                  {
                      Assert.Throws<AssertException>(() => JsonSerializerAssert.Equal(expectedJson, actual)),
                      Assert.Throws<AssertException>(() => JsonSerializerAssert.Equal(expectedJson, actual, this.serializerSettings, JsonAssertOptions.Verbatim))
                  };
     var expectedMessage = "  Simple roundtrip failed. Source is not equal to roundtripped.\r\n" +
                           "  AssertException:   Found this difference between expected and actual:\r\n" +
                           "  expected.<Name>k__BackingField: meh\r\n" +
                           "    actual.<Name>k__BackingField: null";
     foreach (var exception in exceptions)
     {
         Assert.AreEqual(expectedMessage, exception.Message);
     }
 }
            public void WithDummy()
            {
                var actual = new WithDummy { Dummy = new Dummy { Value = 2 } };
                var expectedJson = "{ Dummy: {\"Value\":2}}";

                var roundtrips = new[]
                                     {
                                         JsonSerializerAssert.Equal(expectedJson, actual),
                                         JsonSerializerAssert.Equal(expectedJson, actual, JsonAssertOptions.Default),
                                         JsonSerializerAssert.Equal(expectedJson, actual, JsonAssertOptions.Verbatim),
                                         JsonSerializerAssert.Equal(expectedJson, actual, this.serializerSettings, JsonAssertOptions.Verbatim),
                                     };
                foreach (var roundtrip in roundtrips)
                {
                    Assert.AreNotSame(actual, roundtrip);
                    Assert.AreEqual(2, roundtrip.Dummy.Value);
                }
            }
            public void NotEqualWithDummies()
            {
                var expected = new WithDummy { Dummy = new Dummy { Value = 1 } };
                var actual = new WithDummy { Dummy = new Dummy { Value = 2 } };

                var exceptions = new[]
                                    {
                                       Assert.Throws<AssertException>(() => JsonSerializerAssert.Equal(expected, actual)),
                                       Assert.Throws<AssertException>(() => JsonSerializerAssert.Equal(expected, actual, this.serializerSettings)),
                                    };
                var expectedMessage = "  Json differ at line 1 index 18.\r\n" +
                                      "  Expected: 1| {\"Dummy\":{\"Value\":1}}\r\n" +
                                      "  But was:  1| {\"Dummy\":{\"Value\":2}}\r\n" +
                                      "  -------------------------------^";
                foreach (var exception in exceptions)
                {
                    Assert.AreEqual(expectedMessage, exception.Message);
                }
            }
            public void NotEqualIntArraysDifferentValues()
            {
                var expected = new[] { 1, 2, 3 };
                var actual = new[] { 1, 3, 4 };

                var exceptions = new[]
                                    {
                                       Assert.Throws<AssertException>(() => JsonSerializerAssert.Equal(expected, actual)),
                                       Assert.Throws<AssertException>(() => JsonSerializerAssert.Equal(expected, actual, this.serializerSettings)),
                                    };
                var expectedMessage = "  Json differ at line 1 index 3.\r\n" +
                                      "  Expected: 1| [1,2,3]\r\n" +
                                      "  But was:  1| [1,3,4]\r\n" +
                                      "  ----------------^";
                foreach (var exception in exceptions)
                {
                    Assert.AreEqual(expectedMessage, exception.Message);
                }
            }
            public void NotEqualIntArraysDifferentLengths()
            {
                var expected = new[] { 1, 2, 3 };
                var actual = new[] { 1, 2 };

                var exceptions = new[]
                                    {
                                       Assert.Throws<AssertException>(() => JsonSerializerAssert.Equal(expected, actual)),
                                       Assert.Throws<AssertException>(() => JsonSerializerAssert.Equal(expected, actual, this.serializerSettings)),
                                    };
                var expectedMessage = "  Json differ at line 1 index 9.\r\n" +
                                      "  Expected: 1| [1,2,3]\r\n" +
                                      "  But was:  1| [1,2]\r\n" +
                                      "  -----------------^";
                foreach (var exception in exceptions)
                {
                    Assert.Inconclusive("Not sure how we want this formatted.");
                    //Assert.AreEqual(expectedMessage, exception.Message);
                }
            }