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);
        }
Ejemplo n.º 8
0
        /// <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);
        }
Ejemplo n.º 10
0
        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);
        }