public void XmlNavigator_SelectScalar_WithoutXmlPath_ExpectException() { using (var JsonNavigator = new XmlNavigator(TestData)) { JsonNavigator.SelectScalar(new JsonPath()); } }
public INavigator CreateNavigator(object data, Type pathType) { if (!pathType.GetInterfaces().Contains(typeof(IPath))) { throw new Exception("'" + pathType + "' doesn't implement '" + typeof(IPath) + "'"); } INavigator navigator; if (pathType == typeof(XmlPath)) { navigator = new XmlNavigator(data); } else if (pathType == typeof(JsonPath)) { navigator = new JsonNavigator(data); } else if (pathType == typeof(PocoPath)) { navigator = new PocoNavigator(data); } else { navigator = null; } return(navigator); }
public void XmlNavigator_SelectScalarValue_WithNull_Expected_ArgumentNullException() { using (var xmlNavigator = new XmlNavigator(TestData)) { xmlNavigator.SelectScalar(null); } }
public void XmlNavigator_SelectEnumerableValue_WithoutXmlPath_Expected_Exception() { using (var xmlNavigator = new XmlNavigator(TestData)) { xmlNavigator.SelectEnumerable(new JsonPath()); } }
public void TestParse3() { string xml = @" <root> <person id='1'> <name>masuda</name> <age>44</age> </person> <person id='2'> <name>yamada</name> <age>20</age> </person> <person id='3'> <name>tanaka</name> <age>10</age> </person> </root>"; var doc = new XmlDocument(xml); var q = new XmlNavigator(doc) .Where(n => n.Attrs["id"] == "2") .FirstOrDefault(); Assert.AreEqual("person", q.TagName); // ExDoc記述 Assert.AreEqual("yamada", q / "name"); Assert.AreEqual("20", q / "age"); }
public void TestNormal6() { var root = new XmlNode("root") .Node("person").AddAttr("id", "1") .AddNode("name", "masuda") .AddNode("age", "44") .Parent .Node("person").AddAttr("id", "2") .AddNode("name", "yamada") .AddNode("age", "20") .Parent .Node("person").AddAttr("id", "3") .AddNode("name", "tanaka") .AddNode("age", "10") .Root; // クエリメソッドを使う var xn = new XmlNavigator(root) .Where(n => n % "id" == "2") .FirstOrDefault(); Assert.AreEqual("person", xn.TagName); // ExDoc記述 Assert.AreEqual("yamada", xn / "name"); Assert.AreEqual("20", xn / "age"); }
public void TestNormal3() { var root = new XmlNode("root") .Node("person").AddAttr("id", "1") .AddNode("name", "masuda") .AddNode("age", "44") .Parent .Node("person").AddAttr("id", "2") .AddNode("name", "yamada") .AddNode("age", "20") .Parent .Node("person").AddAttr("id", "3") .AddNode("name", "tanaka") .AddNode("age", "10") .Root; // タグが検索できた場合 var q = new XmlNavigator(root) .Where(n => n.Attrs["id"] == "2") .FirstOrDefault(); Assert.AreEqual("person", q.TagName); // ExDoc記述 Assert.AreEqual("yamada", q / "name"); Assert.AreEqual("20", q / "age"); }
public void XmlNavigator_SelectEnumerableValueUsingNull_Expected_ArgumentNullException() { using (var xmlNavigator = new XmlNavigator(TestData)) { xmlNavigator.SelectEnumerable(null); } }
public void SelectScalarValue_WithWrongPathSegment_Expected_NoValue() { IPath namePath = new XmlPath("Company.Nogo", "Company.Nogo"); var xmlNavigator = new XmlNavigator(testData); var actual = xmlNavigator.SelectScalar(namePath).ToString(); Assert.AreEqual(string.Empty, actual); }
public void TestParse1() { string xml = "<root><name>masuda tomoaki</name></root>"; var doc = new XmlDocument(xml); var q = new XmlNavigator(doc) .Where(n => n.TagName == "name") .FirstOrDefault(); Assert.AreEqual("masuda tomoaki", q.Value); }
public void SelectScalarValue_WithScalarPathFromXml_WherePathMapsToAnAttribute_Expected_ScalarValue() { IPath namePath = new XmlPath("Company:Name", "Company:Name"); var xmlNavigator = new XmlNavigator(testData); var actual = xmlNavigator.SelectScalar(namePath).ToString(); const string expected = "Dev2"; Assert.AreEqual(expected, actual); }
public void SelectEnumerableValuesUsingEnumerablePathFromXml_WherePathMapsThroughNestedEnumerablesScenario2_Expected_EnumerableValue() { IPath path = new XmlPath("Company().OuterNestedRecordSet().InnerNestedRecordSet:ItemValue", "Company.OuterNestedRecordSet.InnerNestedRecordSet:ItemValue"); var xmlNavigator = new XmlNavigator(testData); var actual = string.Join("|", xmlNavigator.SelectEnumerable(path).Select(o => o.ToString().Trim())); const string expected = "val1|val2|val3|val4"; Assert.AreEqual(expected, actual); }
public void SelectEnumerableValuesUsingEnumerablePathFromXml_WherePathMapsToANode_Expected_EnumerableValue() { IPath path = new XmlPath("Company().InlineRecordSet", "Company.InlineRecordSet"); var xmlNavigator = new XmlNavigator(testData); var actual = string.Join("|", xmlNavigator.SelectEnumerable(path).Select(o => o.ToString().Trim())); const string expected = "RandomData|RandomData1"; Assert.AreEqual(expected, actual); }
public void SelectScalarValue_WithEnumerablePathFromXml_WherePathMapsToANode_Expected_ScalarValue() { IPath namePath = new XmlPath("Company().InlineRecordSet", "Company.InlineRecordSet"); var xmlNavigator = new XmlNavigator(testData); var actual = xmlNavigator.SelectScalar(namePath).ToString().Trim(); const string expected = "RandomData1"; Assert.AreEqual(expected, actual); }
public void XmlSerializationTest() { var tsltn = new TsltnFile() { SourceLanguage = "de", TargetLanguage = "en", SourceDocumentPath = TestFiles.TestXmlPath }; const string SUMMARY = "summary"; var navigator = XmlNavigator.Load(tsltn.SourceDocumentPath); tsltn.SetTranslation(navigator !.GetNodeID(new XElement(SUMMARY, "Hello Car")), "Hallo Auto"); var auto2 = new XElement(SUMMARY, "Car 2"); tsltn.SetTranslation(navigator.GetNodeID(auto2), "Auto 2"); var parent1 = new XElement("Node1", "Hi Manual"); tsltn.SetTranslation(navigator.GetNodeID(parent1), "Hallo Manual"); var parent2 = new XElement("Node2", "Manual 2"); tsltn.SetTranslation(navigator.GetNodeID(parent2), "manuell 2"); var sb = new StringBuilder(); var serializer = new XmlSerializer(typeof(TsltnFile)); using (var writer = new StringWriter(sb)) { serializer.Serialize(writer, tsltn); } string s = sb.ToString(); using var reader = new StringReader(s); var tsltn2 = (TsltnFile)serializer.Deserialize(reader); Assert.AreEqual("de", tsltn2.SourceLanguage); Assert.AreEqual("en", tsltn2.TargetLanguage); Assert.IsTrue(tsltn.TryGetTranslation(navigator.GetNodeID(auto2), out string?transl)); Assert.AreEqual("Auto 2", transl); Assert.IsTrue(tsltn.TryGetTranslation(navigator.GetNodeID(parent2), out string?result)); Assert.AreEqual("manuell 2", result); }
public void SelectEnumerableValueUsingScalarPathFromXmlWithASingleNode_WherePathMapsToANode_Expected_ScalarValue() { IPath namePath = new XmlPath("Message", "Message"); var xmlNavigator = new XmlNavigator(GivenSingleNode); var actual = xmlNavigator.SelectEnumerable(namePath); const string expected = "Dummy Data"; Assert.IsTrue(actual.Contains(expected)); }
public void SelectScalarValue_WithEnumerablePathFromXml_WherePathMapsToAnAttribute_Expected_ScalarValue() { IPath namePath = new XmlPath("Company.Departments().Department.Employees().Person:Name", "Company.Departments.Department.Employees.Person:Name"); var xmlNavigator = new XmlNavigator(testData); var actual = xmlNavigator.SelectScalar(namePath).ToString(); const string expected = "Joe"; Assert.AreEqual(expected, actual); }
public void SelectEnumerableValuesUsingEnumerablePathFromXml_WherePathMapsThroughNestedEnumerablesScenario1_Expected_EnumerableValue() { IPath path = new XmlPath("Company.Departments().Department.Employees().Person:Name", "Company.Departments.Department.Employees.Person:Name"); var xmlNavigator = new XmlNavigator(testData); var actual = string.Join("|", xmlNavigator.SelectEnumerable(path).Select(o => o.ToString().Trim())); const string expected = "Brendon|Jayd|Bob|Joe"; Assert.AreEqual(expected, actual); }
public void SelectEnumerableValuesUsingScalarPathFromXml_WherePathMapsToAnAttribute_Expected_EnumerableValue() { IPath path = new XmlPath("Company:Name", "Company:Name"); var xmlNavigator = new XmlNavigator(testData); var actual = string.Join("|", xmlNavigator.SelectEnumerable(path).Select(o => o.ToString().Trim())); const string expected = "Dev2"; Assert.AreEqual(expected, actual); }
public void SelectScalarValue_WithScalarPathFromXmlWithASingleNode_WherePathMapsToANode_Expected_ScalarValue() { IPath namePath = new XmlPath("Message", "Message"); var xmlNavigator = new XmlNavigator(testData); var actual = xmlNavigator.SelectScalar(namePath).ToString(); const string expected = "Dummy Data"; Assert.AreEqual(expected, actual); }
public void SelectScalarValue_WithScalarPathFromXml_WherePathMapsToANode_Expected_ScalarValue() { IPath namePath = new XmlPath("Company.Motto", "Company.Motto"); var xmlNavigator = new XmlNavigator(testData); var actual = xmlNavigator.SelectScalar(namePath).ToString(); const string expected = "Eat lots of cake"; Assert.AreEqual(expected, actual); }
public void XmlNavigator_SelectEnumerableValuesUsingScalarPathFromXml_WherePathMapsToANode_Expected_EnumerableValue() { IPath path = new XmlPath("Company.Motto", "Company.Motto"); using (var xmlNavigator = new XmlNavigator(TestData)) { var actual = string.Join("|", xmlNavigator.SelectEnumerable(path).Select(o => o.ToString().Trim())); const string expected = "Eat lots of cake"; Assert.AreEqual(expected, actual); } }
public void XmlNavigator_SelectEnumerableValuesUsingEnumerablePathFromXml_WherePathMapsToAnAttribute_Expected_EnumerableValue() { IPath path = new XmlPath("Company.Departments().Department:Name", "Company.Departments.Department:Name"); using (var xmlNavigator = new XmlNavigator(TestData)) { var actual = string.Join("|", xmlNavigator.SelectEnumerable(path).Select(o => o.ToString().Trim())); const string expected = "Dev|Accounts"; Assert.AreEqual(expected, actual); } }
public void SelectScalarValueUsingScalarPathFromXml_WherePathMapsToAnAttribute_Expected_ScalarValue() { string testData = Given(); IPath namePath = new XmlPath("Company:Name", "Company:Name"); XmlNavigator xmlNavigator = new XmlNavigator(testData); string actual = xmlNavigator.SelectScalar(namePath).ToString(); string expected = "Dev2"; Assert.AreEqual(expected, actual); }
public void SelectEnumerableValuesUsingScalarPathFromXml_WherePathMapsToANode_Expected_EnumerableValue() { string testData = Given(); IPath path = new XmlPath("Company.Motto", "Company.Motto"); XmlNavigator xmlNavigator = new XmlNavigator(testData); string actual = string.Join("|", xmlNavigator.SelectEnumerable(path).Select(o => o.ToString().Trim())); string expected = "Eat lots of cake"; Assert.AreEqual(expected, actual); }
public void SelectEnumerableValueUsingScalarPathFromXmlWithASingleNode_WherePathMapsToANode_Expected_ScalarValue() { string testData = GivenSingleNode(); IPath namePath = new XmlPath("Message", "Message"); XmlNavigator xmlNavigator = new XmlNavigator(testData); IEnumerable <object> actual = xmlNavigator.SelectEnumerable(namePath); string expected = "Dummy Data"; Assert.IsTrue(actual.Contains(expected)); }
private Node(XElement el, ITranslation transl, XmlNavigator navigator, Node?firstNode) { _nav = navigator; _firstNode = firstNode ?? this; _xElement = el; _transl = transl; // Das Replacement des geschützten Leerzeichens soll beim Hashen // ignoriert werden: ID = _nav.GetNodeID(el, out _innerXml, out _nodePath); _innerXml = XmlFragmentBeautifier.Beautify(_innerXml); HasAncestor = !Equals(_firstNode); HasDescendant = _nav.GetNextXElement(el) != null; }
public void SelectEnumerableValuesAsRelatedUsingScalarPathFromXmlWithASingleNode_WherePathMapsToANode_Expected_ScalarValue() { IPath namePath = new XmlPath("Message", "Message"); IList <IPath> paths = new List <IPath>(); paths.Add(namePath); var xmlNavigator = new XmlNavigator(GivenSingleNode); var actual = xmlNavigator.SelectEnumerablesAsRelated(paths); const string expected = "Dummy Data"; Assert.IsTrue(actual[namePath].Contains(expected)); }
public void SelectEnumerableValuesAsRelatedUsingEnumerablePathFromXmlFromFoPrimitiveType() { var xmlDocument = new XmlDocument(); xmlDocument.LoadXml("<boolean xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">false</boolean>"); var testData = Scrubber.Scrub(xmlDocument.InnerXml); var xmlMapper = new XmlMapper(); var paths = xmlMapper.Map(testData).ToList(); var path = paths.FirstOrDefault(); var xmlNavigator = new XmlNavigator(testData); var dat2 = xmlNavigator.SelectScalar(path); Assert.AreEqual("false", dat2); }
public void XmlNavigator_SelectEnumerableValuesAsRelated_UsingScalarPathFrom_Valid_SOAPXml_WherePathMapsToANode_Expected_ScalarValue1() { IPath namePath = new XmlPath("Envelope.Body.LoginResponse.LoginResult.CookieName", "Envelope.Body.LoginResponse.LoginResult.CookieName"); IList <IPath> paths = new List <IPath> { namePath }; using (var xmlNavigator = new XmlNavigator(GivenSoapWithManyNamespaces)) { var actual = xmlNavigator.SelectEnumerablesAsRelated(paths); Assert.IsTrue(actual[namePath].Contains("FedAuth")); } }
public void TestParse2() { string xml = @" <root> <name>masuda</name> <name>yamada</name> <name>yamasaki</name> </root>"; var doc = new XmlDocument(xml); var q = new XmlNavigator(doc) .Where(n => n.TagName == "name") ; Assert.AreEqual(3, q.Count()); Assert.AreEqual("masuda", q.First().Value); }