public void ReadWithBufferingTest()
        {
            IEnumerable <BufferingJsonReaderTestCaseDescriptor> testCases = new BufferingJsonReaderTestCaseDescriptor[]
            {
                new BufferingJsonReaderTestCaseDescriptor()
                {
                    JsonText                  = jsonPayload,
                    ExpectedNodes             = expectedNodes,
                    RemoveDuplicateProperties = false
                },
                new BufferingJsonReaderTestCaseDescriptor()
                {
                    JsonText                  = jsonPayload,
                    ExpectedNodes             = expectedNodes,
                    RemoveDuplicateProperties = true
                },
            };

            IEnumerable <int[]> toggleBufferingCallCountsList = new int[][]
            {
                new int[] { 0 },
                new int[] { 15 },
                new int[] { 0, 5, 10 },
                new int[] { 0, 3, 12, 15 },
                new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
            };

            this.CombinatorialEngineProvider.RunCombinations(
                testCases,
                toggleBufferingCallCountsList,
                new bool[] { false, true },
                (testCase, toggleBufferingCallCounts, removeDuplicateProperties) =>
            {
                testCase = new BufferingJsonReaderTestCaseDescriptor(testCase)
                {
                    ToggleBufferingCallCounts = toggleBufferingCallCounts
                };

                JsonReaderUtils.ReadAndVerifyBufferingJson(testCase, this.Assert);
            });
        }