public void SelectEnumerableValuesAsRelatedUsingPocoEnumerablePathsFromReferenceType_Where_PathsContainNestedEnumerablePaths_Expected_FlattenedDataWithValuesFromOuterEnumerablePathRepeatingForEveryValueFromNestedEnumerablePath() { PocoTestData testData = GivenPocoWithParallelAndNestedEnumerables(); PocoPath enumerableNamePath = new PocoPath("EnumerableData().Name", "EnumerableData.Name"); PocoPath nestedEnumerableNamePath = new PocoPath("EnumerableData().EnumerableData().Name", "EnumerableData.EnumerableData.Name"); List <IPath> paths = new List <IPath> { enumerableNamePath, nestedEnumerableNamePath }; IDataBrowser dataBrowser = DataBrowserFactory.CreateDataBrowser(); Dictionary <IPath, IList <object> > data = dataBrowser.SelectEnumerablesAsRelated(paths, testData); #region Complex Setup for Expected // // The code in this region is used to setup the exprected value. // It can't be reused for other tests and can't be made generic // without replicating the funcationality being tested. // string tmpExpected = ""; string tmpExpected1 = ""; string separator = "|"; for (int outerCount = 0; outerCount < testData.EnumerableData.Count; outerCount++) { for (int innerCount = 0; innerCount < testData.EnumerableData[outerCount].EnumerableData.Count; innerCount++) { if ((outerCount == testData.EnumerableData.Count - 1) && (innerCount == testData.EnumerableData[outerCount].EnumerableData.Count - 1)) { separator = ""; } if (outerCount < testData.EnumerableData.Count) { tmpExpected += testData.EnumerableData[outerCount].Name + separator; } else { tmpExpected += separator; } if (innerCount < testData.EnumerableData[outerCount].EnumerableData.Count) { tmpExpected1 += testData.EnumerableData[outerCount].EnumerableData[innerCount].Name + separator; } else { tmpExpected1 += separator; } } } #endregion Complex Setup for Expected string expected = tmpExpected + "^" + tmpExpected1; string actual = string.Join("|", data[enumerableNamePath]); actual += "^" + string.Join("|", data[nestedEnumerableNamePath]); Assert.AreEqual(expected, actual); }
public void MapPathsOfJson_Expected_JsonPaths() { string testData = GivenJson(); IDataBrowser dataBrowser = DataBrowserFactory.CreateDataBrowser(); IEnumerable <IPath> paths = dataBrowser.Map(testData); Assert.IsTrue(paths.All(p => p.GetType() == typeof(JsonPath))); }
public void MapPathsOfReferenceType_Expected_PocoPaths() { PocoTestData testData = GivenPoco(); IDataBrowser dataBrowser = DataBrowserFactory.CreateDataBrowser(); IEnumerable <IPath> paths = dataBrowser.Map(testData); Assert.IsTrue(paths.All(p => p.GetType() == typeof(PocoPath))); }
public void MapPathsOfUnexpectedType_Expected_PocoPaths() { Uri uri = new Uri("/cake", UriKind.Relative); IDataBrowser dataBrowser = DataBrowserFactory.CreateDataBrowser(); IEnumerable <IPath> paths = dataBrowser.Map(uri); Assert.IsTrue(paths.All(p => p.GetType() == typeof(PocoPath))); }
public void SelectScalarValueUsingJsonScalarPathFromJson_Expected_ScalarValue() { string testData = GivenJson(); IPath namePath = new JsonPath("Name", "Name"); IDataBrowser dataBrowser = DataBrowserFactory.CreateDataBrowser(); object data = dataBrowser.SelectScalar(namePath, testData); Assert.AreEqual(data, "Dev2"); }
public void SelectScalarValueUsingPocoScalarPathFromXml_Expected_ScalarValue() { string testData = GivenXml(); IPath namePath = new XmlPath("Company:Name", "Company:Name"); IDataBrowser dataBrowser = DataBrowserFactory.CreateDataBrowser(); object data = dataBrowser.SelectScalar(namePath, testData); Assert.AreEqual(data, "Dev2"); }
public void SelectScalarValueUsingPocoScalarPathFromReferenceType_Expected_ScalarValue() { PocoTestData testData = GivenPoco(); IPath namePath = new PocoPath("Name", "Name"); IDataBrowser dataBrowser = DataBrowserFactory.CreateDataBrowser(); object data = dataBrowser.SelectScalar(namePath, testData); Assert.AreEqual(data, testData.Name); }
/// <summary> /// Map the data given in the StringData field of the payload using the DataBrowser /// </summary> public string MapStringData(string data) { string stringData = ValueExtractor.GetValueFromDataList("StringData", data); IDataBrowser dataBrowser = DataBrowserFactory.CreateDataBrowser(); IEnumerable <IPath> mappedPaths = dataBrowser.Map(stringData); string pathsString = string.Join(Environment.NewLine, mappedPaths.Select(p => p.DisplayPath)); return("<ADL><PathData>" + pathsString + "</PathData></ADL>"); }
public void SelectEnumerableValueUsingPocoEnumerablePathFromReferenceType_Expected_ValuesFromEachItemInEnumeration() { PocoTestData testData = GivenPoco(); IPath namePath = new PocoPath("EnumerableData().Name", "EnumerableData.Name"); IDataBrowser dataBrowser = DataBrowserFactory.CreateDataBrowser(); IEnumerable <object> data = dataBrowser.SelectEnumerable(namePath, testData); string expected = string.Join("|", testData.EnumerableData.Select(e => e.Name)); string actual = string.Join("|", data.Select(o => o.ToString())); Assert.AreEqual(expected, actual); }
public void SelectEnumerableValuesAsRelatedUsingJsonEnumerablePathsFromJson_Where_PathsContainNestedEnumerablePaths_Expected_FlattenedDataWithValuesFromOuterEnumerablePathRepeatingForEveryValueFromNestedEnumerablePath() { string testData = GivenJson(); IPath enumerableNamePath = new JsonPath("Departments().Name", "Departments.Name"); IPath nestedEnumerableNamePath = new JsonPath("Departments().Employees().Name", "Departments.Employees.Name"); List <IPath> paths = new List <IPath> { enumerableNamePath, nestedEnumerableNamePath }; IDataBrowser dataBrowser = DataBrowserFactory.CreateDataBrowser(); Dictionary <IPath, IList <object> > data = dataBrowser.SelectEnumerablesAsRelated(paths, testData); string expected = "Dev|Dev|Accounts|Accounts^Brendon|Jayd|Bob|Joe"; string actual = string.Join("|", data[enumerableNamePath]); actual += "^" + string.Join("|", data[nestedEnumerableNamePath]); Assert.AreEqual(expected, actual); }