public void TestDiffFalseVsTrue()
        {
            var diffMessages = JsonStrings.Diff("false", "true");
            var diffMessage  = diffMessages.Single();

            Assert.Equal("Boolean value mismatch at $.\nExpected true but was false.", diffMessage);
        }
Beispiel #2
0
        public void ShouldHaveCorrectErrorString()
        {
            var subjectUnderTest = new JsonProtocolWriterFormat();

            Assert.That(subjectUnderTest.LogError("ERROR!!!!!!").TrimStuffForCompare(),
                        Is.EqualTo(JsonStrings.CommandErrorOut().TrimStuffForCompare()));
        }
Beispiel #3
0
        public void ShouldHaveCorrectLogString()
        {
            var subjectUnderTest = new JsonProtocolWriterFormat();

            Assert.That(subjectUnderTest.LogInfo("hello world!").TrimStuffForCompare(),
                        Is.EqualTo(JsonStrings.CommandLogOut().TrimStuffForCompare()));
        }
Beispiel #4
0
        public void ShouldHaveCorrectAcknowledgeString()
        {
            var subjectUnderTest = new JsonProtocolWriterFormat();

            Assert.That(subjectUnderTest.Acknowledge(1231231).TrimStuffForCompare(),
                        Is.EqualTo(JsonStrings.CommandAckOut().TrimStuffForCompare()));
        }
        public void TestDiffFalseVsNull()
        {
            var diffMessages = JsonStrings.Diff("false", "null");
            var diffMessage  = diffMessages.Single();

            Assert.Equal("Kind mismatch at $.\nExpected null but was the boolean false.", diffMessage);
        }
Beispiel #6
0
        public void TestTypeDiff()
        {
            var str1 = "true";
            var str2 = "\"true\"";

            var diff1 = JsonStrings.Diff(str1, str2).Single();

            Assert.True(diff1.IsTypeDiff);
            Assert.False(diff1.IsValueDiff);
            Assert.False(diff1.IsArrayDiff);
            Assert.False(diff1.IsObjectDiff);

            var diff2 = new TypeDiff(
                new DiffPoint("$",
                              JsonTrue.Instance,
                              new JsonString("true")));

            Assert.True(diff2.IsTypeDiff);
            Assert.False(diff2.IsValueDiff);
            Assert.False(diff2.IsArrayDiff);
            Assert.False(diff2.IsObjectDiff);

            Assert.Equal(diff1, diff2);

            Assert.Equal("TypeDiff { Path = $, Left = true, Right = true }", diff1.ToString());
        }
Beispiel #7
0
        public void TestBookExample()
        {
            var str1       = @"{
    ""books"": [{
        ""title"": ""Data and Reality"",  
        ""author"": ""William Kent""
    }, {
        ""title"": ""Thinking Forth"",
        ""author"": ""Leo Brodie""
    }]
}";
            var str2       = @"{
    ""books"": [{
        ""title"": ""Data and Reality"",
        ""author"": ""William Kent"",
        ""edition"": ""2nd""
    }, {
        ""title"": ""Thinking Forth"",
        ""author"": ""Chuck Moore""
    }]
}";
            var textDiffs1 = JsonStrings.TextDiff(str1, str2);
            var textDiffs2 = Dogfooding.TextDiff(str1, str2);

            Assert.Equal(textDiffs1.Count, textDiffs2.Count);

            foreach (var(textDiff1, textDiff2) in textDiffs1.Zip(textDiffs2))
            {
                Assert.Equal(textDiff1, textDiff2);
            }
        }
        public void TestDiffOneVsTrue()
        {
            var diffMessages = JsonStrings.Verify("1", "true");
            var diffMessage  = diffMessages.Single();

            Assert.Equal("Kind mismatch at $.\nExpected the boolean true but was the number 1.", diffMessage);
        }
        public void TestDiffNullVsFalse()
        {
            var diffMessages = JsonStrings.Verify("null", "false");
            var diffMessage  = diffMessages.Single();

            Assert.Equal("Kind mismatch at $.\nExpected the boolean false but was null.", diffMessage);
        }
Beispiel #10
0
        public void TestDiffFalseVsZero()
        {
            var diffMessages = JsonStrings.Verify("false", "0");
            var diffMessage  = diffMessages.Single();

            Assert.Equal("Kind mismatch at $.\nExpected the number 0 but was the boolean false.", diffMessage);
        }
Beispiel #11
0
        public void TestDiffNullVsFalse()
        {
            var diffs = JsonStrings.TextDiff("null", "false");
            var diff  = diffs.Single();

            Assert.Equal("Type difference at $: null vs the boolean false.", diff);
        }
Beispiel #12
0
        public void ArrayExampleOrderMatters()
        {
            var actualDiffs = JsonStrings.Diff("[ 24, 12 ]", "[ 12, 24 ]");

            var expectedDiffs = new List <Diff>
            {
                new ArrayDiff(new DiffPoint("$",
                                            new JsonArray(new JsonValue []
                {
                    new JsonNumber(24, "24"),
                    new JsonNumber(12, "12")
                }),
                                            new JsonArray(new JsonValue []
                {
                    new JsonNumber(12, "12"),
                    new JsonNumber(24, "24")
                })),
                              new ItemMismatch[]
                {
                    new LeftOnlyItem(0, new JsonNumber(24, "24")),
                    new RightOnlyItem(1, new JsonNumber(24, "24"))
                })
            };

            Assert.Equal(expectedDiffs.Count, actualDiffs.Count);

            foreach (var(expected, actual) in expectedDiffs.Zip(actualDiffs))
            {
                Assert.Equal(expected, actual);
            }
        }
Beispiel #13
0
        public void TestDiffTrueVsFalse()
        {
            var diffMessages = JsonStrings.Verify("true", "false");
            var diffMessage  = diffMessages.Single();

            Assert.Equal("Boolean value mismatch at $.\nExpected false but was true.", diffMessage);
        }
        public void ShouldIndicateNotTaskIdArray()
        {
            var rawJsonData      = JsonStrings.TupleIn().WithoutEnd().ToSingleString();
            var subjectUnderTest = Subject();

            Assert.That(subjectUnderTest.IsTaskIdList(rawJsonData), Is.False);
        }
Beispiel #15
0
        public void BookExample()
        {
            var str1  = @"{
    ""books"": [{
        ""title"": ""Data and Reality"",  
        ""author"": ""William Kent""
    }, {
        ""title"": ""Thinking Forth"",
        ""author"": ""Leo Brodie""
    }]
}";
            var str2  = @"{
    ""books"": [{
        ""title"": ""Data and Reality"",
        ""author"": ""William Kent"",
        ""edition"": ""2nd""
    }, {
        ""title"": ""Thinking Forth"",
        ""author"": ""Chuck Moore""
    }]
}";
            var diffs = JsonStrings.TextDiff(str1, str2);

            Assert.Equal("Object difference at $.books[0].\nRight only property: 'edition' (string).", diffs[0]);
            Assert.Equal("String value difference at $.books[1].author: Leo Brodie vs Chuck Moore.", diffs[1]);
        }
Beispiel #16
0
        public void ShouldHaveCorrectPidString()
        {
            var subjectUnderTest = new JsonProtocolWriterFormat();

            Assert.That(subjectUnderTest.ProcessId(1234).TrimStuffForCompare(),
                        Is.EqualTo(JsonStrings.PidOut().TrimStuffForCompare()));
        }
Beispiel #17
0
        public void TestDiffEmptyArrayVsOne()
        {
            var diffs = JsonStrings.TextDiff("[]", "1");
            var diff  = diffs.Single();

            Assert.Equal("Type difference at $: an empty array vs the number 1.", diff);
        }
Beispiel #18
0
        public void TestDiffArrayOfOneElementVsOne()
        {
            var diffs = JsonStrings.TextDiff("[ 1 ]", "1");
            var diff  = diffs.Single();

            Assert.Equal("Type difference at $: an array with 1 item vs the number 1.", diff);
        }
Beispiel #19
0
        public void TestDiffOneVsTrue()
        {
            var diffs = JsonStrings.TextDiff("1.42", "true");
            var diff  = diffs.Single();

            Assert.Equal("Type difference at $: the number 1.42 vs the boolean true.", diff);
        }
Beispiel #20
0
        public void TestDiffFalseVsZero()
        {
            var diffs = JsonStrings.TextDiff("false", "0");
            var diff  = diffs.Single();

            Assert.Equal("Type difference at $: the boolean false vs the number 0.", diff);
        }
Beispiel #21
0
        public void TestDiffFalseVsNull()
        {
            var diffs = JsonStrings.TextDiff("false", "null");
            var diff  = diffs.Single();

            Assert.Equal("Type difference at $: the boolean false vs null.", diff);
        }
Beispiel #22
0
        public void TestDiffEmptyArrayVsOne()
        {
            var diffMessages = JsonStrings.Verify("[]", "1");
            var diffMessage  = diffMessages.Single();

            Assert.Equal("Kind mismatch at $.\nExpected the number 1 but was an empty array.", diffMessage);
        }
Beispiel #23
0
        public void TestValueDiff()
        {
            var str1 = @"{
    ""title"": ""Thinking Forth"",
    ""author"": ""Leo Brodie""
}";
            var str2 = @"{
    ""title"": ""Thinking Forth"",
    ""author"": ""Chuck Moore""
}";

            var diff1 = JsonStrings.Diff(str1, str2).Single();

            Assert.True(diff1.IsValueDiff);
            Assert.False(diff1.IsTypeDiff);
            Assert.False(diff1.IsArrayDiff);
            Assert.False(diff1.IsObjectDiff);

            var diff2 = new ValueDiff(
                new DiffPoint("$.author",
                              new JsonString("Leo Brodie"),
                              new JsonString("Chuck Moore")));

            Assert.True(diff2.IsValueDiff);
            Assert.False(diff2.IsTypeDiff);
            Assert.False(diff2.IsArrayDiff);
            Assert.False(diff2.IsObjectDiff);

            Assert.Equal(diff1, diff2);

            Assert.Equal("ValueDiff { Path = $.author, Left = Leo Brodie, Right = Chuck Moore }", diff1.ToString());
        }
Beispiel #24
0
        public void TestDiffArrayOfOneElementVsOne()
        {
            var diffMessages = JsonStrings.Verify("[ 1 ]", "1");
            var diffMessage  = diffMessages.Single();

            Assert.Equal("Kind mismatch at $.\nExpected the number 1 but was an array with 1 item.", diffMessage);
        }
Beispiel #25
0
        public void ArrayExampleNumberOfItems()
        {
            var actualDiffs = JsonStrings.Diff("[ 3 ]", "[ 3, 7 ]");

            var expectedDiffs = new List <Diff>
            {
                new ArrayDiff(
                    new DiffPoint("$",
                                  new JsonArray(
                                      new JsonValue []
                {
                    new JsonNumber(3, "3")
                }),
                                  new JsonArray(new JsonValue []
                {
                    new JsonNumber(3, "3"),
                    new JsonNumber(7, "7")
                })), new ItemMismatch[]
                {
                    new RightOnlyItem(1, new JsonNumber(7, "7")),
                })
            };

            Assert.Equal(expectedDiffs.Count, actualDiffs.Count);

            foreach (var(expected, actual) in expectedDiffs.Zip(actualDiffs))
            {
                Assert.Equal(expected, actual);
            }
        }
Beispiel #26
0
        public static IReadOnlyList <string> TextDiff(string leftJsonString, string rightJsonString)
        {
            var diffs     = JsonStrings.Diff(leftJsonString, rightJsonString);
            var textDiffs = diffs.Select(ToTextDiff);

            return(textDiffs.ToList());
        }
Beispiel #27
0
        public void ShouldHaveCorrectSyncString()
        {
            var subjectUnderTest = new JsonProtocolWriterFormat();

            Assert.That(subjectUnderTest.Sync().TrimStuffForCompare(),
                        Is.EqualTo(JsonStrings.CommandSyncOut().TrimStuffForCompare()));
        }
Beispiel #28
0
        public void TestDiffTrueVsEmptyString()
        {
            // Empty string is not valid JSON.
            var ex = Assert.Throws <ArgumentException>(() => JsonStrings.Diff("true", ""));

            Assert.Equal("rightJsonString", ex.ParamName);
            Assert.IsAssignableFrom <JsonException>(ex.InnerException);
        }
Beispiel #29
0
        public void TestDiffFalseVsTrue()
        {
            // In JSON there is no boolean type, but we pretend there is to provide a better message.
            var diffs = JsonStrings.TextDiff("false", "true");
            var diff  = diffs.Single();

            Assert.Equal("Boolean value difference at $: false vs true.", diff);
        }
        public void ShouldReturnAStormNext()
        {
            var rawJsonData      = JsonStrings.CommandNextIn().WithoutEnd().ToSingleString();
            var subjectUnderTest = Subject();

            Assert.That(
                subjectUnderTest.Command(rawJsonData),
                Is.TypeOf <StormNext>());
        }