public void TestNonExistingArrayFragmentSetObject()
        {
            var doc = new MutableDocument("doc1");

            doc.Invoking(d => d["array"][0][0].Value = 1)
            .Should().Throw <InvalidOperationException>("because the path does not exist");
            doc.Invoking(d => d["array"][0][1].Value = false)
            .Should().Throw <InvalidOperationException>("because the path does not exist");
            doc.Invoking(d => d["array"][0][2].Value = "hello")
            .Should().Throw <InvalidOperationException>("because the path does not exist");

            SaveDocument(doc, d =>
            {
                d["array"][0][0].Int.Should().Be(0);
                d["array"][0][1].Boolean.Should().Be(false);
                d["array"][0][2].String.Should().BeNull();
            });
        }
        public void TestOutOfRangeArrayFragmentSetObject()
        {
            var doc = new MutableDocument("doc1");

            doc["array"].Value = new List <object>();
            doc["array"].Array.AddValue(new object[] { "Jason", 5.5, true });
            doc.Invoking(d => d["array"][0][3].Value = 1).Should().Throw <InvalidOperationException>();

            SaveDocument(doc, d =>
            {
                d["array"][0][3].Exists.Should().BeFalse();
            });
        }