public void SelectEnumerableValuesAsRelatedUsingEnumerablePathFromJson_Where_PathsContainASinglePathWhichIsScalar_Expected_FlattenedDataWithValueFromScalarPath() { string testData = Given(); IPath path = new JsonPath("Name", "Name"); List<IPath> paths = new List<IPath> { path }; JsonNavigator JsonNavigator = new JsonNavigator(testData); Dictionary<IPath, IList<object>> data = JsonNavigator.SelectEnumerablesAsRelated(paths); const string expected = "Dev2"; string actual = string.Join("|", data[path].Select(s => s.ToString().Trim())); Assert.AreEqual(expected, actual); }
public void SelectEnumerableValuesAsRelatedUsingEnumerablePathFromJson_Where_PathsContainASinglePathWhichIsEnumerable_Expected_FlattenedDataWithValuesFromEnumerablePath() { string testData = Given(); IPath path = new JsonPath("Departments().Employees().Name", "Departments.Employees.Name"); List<IPath> paths = new List<IPath> { path }; JsonNavigator JsonNavigator = new JsonNavigator(testData); Dictionary<IPath, IList<object>> data = JsonNavigator.SelectEnumerablesAsRelated(paths); const string expected = "Brendon|Jayd|Bob|Joe"; string actual = string.Join("|", data[path].Select(s => s.ToString().Trim())); Assert.AreEqual(expected, actual); }
public void SelectEnumerableValuesAsRelatedUsingEnumerablePathFromJson_Where_PathsContainUnrelatedEnumerablePaths_Expected_FlattenedDataWithValuesFromUnrelatedEnumerablePathsAtMatchingIndexes() { string testData = Given(); IPath path = new JsonPath("Departments().Name", "Departments.Name"); IPath path1 = new JsonPath("Contractors().Name", "Contractors.Name"); List<IPath> paths = new List<IPath> { path, path1 }; JsonNavigator JsonNavigator = new JsonNavigator(testData); Dictionary<IPath, IList<object>> data = JsonNavigator.SelectEnumerablesAsRelated(paths); const string expected = "Dev|Accounts||^Roofs Inc.|Glass Inc.|Doors Inc.|Cakes Inc."; string actual = string.Join("|", data[path].Select(s => s.ToString().Trim())) + "^" + string.Join("|", data[path1].Select(s => s.ToString().Trim())); Assert.AreEqual(expected, actual); }
public void SelectEnumerableValuesAsRelatedUsingEnumerablePathFromJson_Where_PathsContainNestedEnumerablePaths_Expected_FlattenedDataWithValuesFromOuterEnumerablePathRepeatingForEveryValueFromNestedEnumerablePath() { string testData = Given(); IPath path3 = new JsonPath("Name", "Name"); IPath path = new JsonPath("Departments().Name", "Departments.Name"); IPath path1 = new JsonPath("Departments().Employees().Name", "Departments.Employees.Name"); IPath path2 = new JsonPath("PrimitiveRecordset()", "PrimitiveRecordset"); List<IPath> paths = new List<IPath> { path3, path, path1, path2 }; JsonNavigator JsonNavigator = new JsonNavigator(testData); Dictionary<IPath, IList<object>> data = JsonNavigator.SelectEnumerablesAsRelated(paths); const string expected = "Dev2|Dev2|Dev2|Dev2^Dev|Dev|Accounts|Accounts^Brendon|Jayd|Bob|Joe^RandomData\r\n ,\r\n RandomData1|||"; string actual = string.Join("|", data[path3].Select(s => s.ToString().Trim())) + "^" + string.Join("|", data[path].Select(s => s.ToString().Trim())) + "^" + string.Join("|", data[path1].Select(s => s.ToString().Trim())) + "^" + string.Join("|", data[path2].Select(s => s.ToString().Trim())); Assert.AreEqual(expected, actual); }
public void SelectEnumerableValuesAsRelatedUsingEnumerablePathFromJson_Where_PathsContainAScalarPath_Expected_FlattenedDataWithValueFromScalarPathRepeatingForEachEnumeration() { string testData = Given(); IPath path = new JsonPath("Name", "Name"); IPath path1 = new JsonPath("Departments().Name", "Departments.Name"); List<IPath> paths = new List<IPath> { path, path1 }; JsonNavigator JsonNavigator = new JsonNavigator(testData); Dictionary<IPath, IList<object>> data = JsonNavigator.SelectEnumerablesAsRelated(paths); const string expected = "Dev2|Dev2^Dev|Accounts"; string actual = string.Join("|", data[path].Select(s => s.ToString().Trim())) + "^" + string.Join("|", data[path1].Select(s => s.ToString().Trim())); Assert.AreEqual(expected, actual); }