SelectEnumerablesAsRelated() public method

public SelectEnumerablesAsRelated ( IList paths ) : IList>.Dictionary
paths IList
return IList>.Dictionary
        public void SelectEnumerableValuesAsRelatedUsingEnumerablePathFromXml_Where_PathsContainASinglePathWhichIsScalar_Expected_FlattenedDataWithValueFromScalarPath()
        {
            string testData = Given();

            IPath path = new XmlPath("Company:Name", "Company:Name");
            List<IPath> paths = new List<IPath> { path };

            XmlNavigator xmlNavigator = new XmlNavigator(testData);

            Dictionary<IPath, IList<object>> data = xmlNavigator.SelectEnumerablesAsRelated(paths);

            string expected = "Dev2";
            string actual = string.Join("|", data[path].Select(s => s.ToString().Trim()));

            Assert.AreEqual(expected, actual);
        }
        public void SelectEnumerableValuesAsRelatedUsingEnumerablePathFromXml_Where_PathsContainASinglePathWhichIsEnumerable_Expected_FlattenedDataWithValuesFromEnumerablePath()
        {
            string testData = Given();

            IPath path = new XmlPath("Company.Departments().Department.Employees().Person:Name", "Company.Departments.Department.Employees.Person:Name");
            List<IPath> paths = new List<IPath> { path };

            XmlNavigator xmlNavigator = new XmlNavigator(testData);

            Dictionary<IPath, IList<object>> data = xmlNavigator.SelectEnumerablesAsRelated(paths);

            string expected = "Brendon|Jayd|Bob|Joe";
            string actual = string.Join("|", data[path].Select(s => s.ToString().Trim()));

            Assert.AreEqual(expected, actual);
        }
        public void SelectEnumerableValuesAsRelatedUsingEnumerablePathFromXml_Where_PathsContainNestedEnumerablePaths_Expected_FlattenedDataWithValuesFromOuterEnumerablePathRepeatingForEveryValueFromNestedEnumerablePath()
        {
            string testData = Given();

            IPath path = new XmlPath("Company.Departments().Department:Name", "Company.Departments.Department:Name");
            IPath path1 = new XmlPath("Company.Departments().Department.Employees().Person:Name", "Company.Departments.Department.Employees.Person:Name");
            List<IPath> paths = new List<IPath> { path, path1 };

            XmlNavigator xmlNavigator = new XmlNavigator(testData);

            Dictionary<IPath, IList<object>> data = xmlNavigator.SelectEnumerablesAsRelated(paths);

            string expected = "Dev|Dev|Accounts|Accounts^Brendon|Jayd|Bob|Joe";
            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 SelectEnumerableValuesAsRelatedUsingEnumerablePathFromXml_Where_PathsContainUnrelatedEnumerablePaths_Expected_FlattenedDataWithValuesFromUnrelatedEnumerablePathsAtMatchingIndexes()
        {
            string testData = Given();

            IPath path = new XmlPath("Company().OuterNestedRecordSet().InnerNestedRecordSet:ItemValue", "Company.OuterNestedRecordSet.InnerNestedRecordSet:ItemValue");
            IPath path1 = new XmlPath("Company().InlineRecordSet", "Company.InlineRecordSet");
            List<IPath> paths = new List<IPath> { path, path1 };

            XmlNavigator xmlNavigator = new XmlNavigator(testData);

            Dictionary<IPath, IList<object>> data = xmlNavigator.SelectEnumerablesAsRelated(paths);

            string expected = "val1|val2|val3|val4^RandomData|RandomData1||";
            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 SelectEnumerableValuesAsRelatedUsingEnumerablePathFromXml_Where_PathsContainAScalarPath_Expected_FlattenedDataWithValueFromScalarPathRepeatingForEachEnumeration()
        {
            string testData = Given();

            IPath path = new XmlPath("Company:Name", "Company:Name");
            IPath path1 = new XmlPath("Company().InlineRecordSet", "Company.InlineRecordSet");
            List<IPath> paths = new List<IPath> { path, path1 };

            XmlNavigator xmlNavigator = new XmlNavigator(testData);

            Dictionary<IPath, IList<object>> data = xmlNavigator.SelectEnumerablesAsRelated(paths);

            string expected = "Dev2|Dev2^RandomData|RandomData1";
            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 SelectEnumerableValuesAsRelatedUsingScalarPathFromXmlWithASingleNode_WherePathMapsToANode_Expected_ScalarValue()
        {
            string testData = GivenSingleNode();

            IPath namePath = new XmlPath("Message", "Message");
            IList<IPath> paths = new List<IPath>();
            paths.Add(namePath);


            XmlNavigator xmlNavigator = new XmlNavigator(testData);
            var actual = xmlNavigator.SelectEnumerablesAsRelated(paths);
            string expected = "Dummy Data";

            Assert.IsTrue(actual[namePath].Contains(expected));
        }