public void PreprocessParametersAddsDirectValueForValidAttributeDynamicValue() { var document = new XmlDocument(); var xml = "<item attrib=\"$[value|default]\"><subItem>Text</subItem></item>"; document.LoadXml(xml); var task = new TestTask(); var actual = task.PreprocessParameters(new NetReflectorTypeTable(), document.DocumentElement); var expected = "<item attrib=\"default\"><subItem>Text</subItem>" + "<dynamicValues>" + "<directValue>" + "<parameter>value</parameter>" + "<default>default</default>" + "<property>attrib</property>" + "</directValue>" + "</dynamicValues></item>"; Assert.AreEqual(expected, actual.OuterXml); }
public void PreprocessParametersAddsSingleReplacementValueForValidAttributeDynamicValueWithoutDefault() { var document = new XmlDocument(); var xml = "<item attrib=\"($[value1])\"><subItem>Text</subItem></item>"; document.LoadXml(xml); var task = new TestTask(); var actual = task.PreprocessParameters(new NetReflectorTypeTable(), document.DocumentElement); var expected = "<item attrib=\"\"><subItem>Text</subItem>" + "<dynamicValues>" + "<replacementValue>" + "<format>({0})</format>" + "<parameters>" + "<namedValue name=\"value1\" />" + "</parameters>" + "<property>attrib</property>" + "</replacementValue>" + "</dynamicValues></item>"; Assert.AreEqual(expected, actual.OuterXml); }
public void PreprocessParametersAddsDirectValueForValidDoublyNestedDynamicValuesNodes() { var document = new XmlDocument(); var xml = "<item attrib=\"value\"><subItems><subItem><subSubItemsDV><subSubItemDV><prop>$[value]</prop></subSubItemDV><subSubItemDV><prop>$[value2]</prop></subSubItemDV></subSubItemsDV></subItem></subItems></item>"; document.LoadXml(xml); var task = new TestTask(); NetReflectorTypeTable typeTable = new NetReflectorTypeTable(); typeTable.Add(typeof(Item)); typeTable.Add(typeof(SubItem)); typeTable.Add(typeof(SubItemDV)); typeTable.Add(typeof(subSubItemDV)); var actual = task.PreprocessParameters(typeTable, document.DocumentElement); var expected = "<item attrib=\"value\"><subItems><subItem><subSubItemsDV>" + "<subSubItemDV>" + "<prop></prop>" + "<dynamicValues>" + "<directValue>" + "<parameter>value</parameter>" + "<property>prop</property>" + "</directValue>" + "</dynamicValues>" + "</subSubItemDV>" + "<subSubItemDV>" + "<prop></prop>" + "<dynamicValues>" + "<directValue>" + "<parameter>value2</parameter>" + "<property>prop</property>" + "</directValue>" + "</dynamicValues>" + "</subSubItemDV>" + "</subSubItemsDV>" + "</subItem></subItems></item>"; Assert.AreEqual(expected, actual.OuterXml); }
public void PreprocessParametersAddsMultipleReplacementValueForValidNodeDynamicValueWithFormat() { var document = new XmlDocument(); var xml = "<item attrib=\"value\"><subItem>$[value1|default|00] $[value2|default|00]</subItem></item>"; document.LoadXml(xml); var task = new TestTask(); var actual = task.PreprocessParameters(new NetReflectorTypeTable(), document.DocumentElement); var expected = "<item attrib=\"value\"><subItem></subItem>" + "<dynamicValues>" + "<replacementValue>" + "<format>{0:00} {1:00}</format>" + "<parameters>" + "<namedValue name=\"value1\" value=\"default\" />" + "<namedValue name=\"value2\" value=\"default\" />" + "</parameters>" + "<property>subItem</property>" + "</replacementValue>" + "</dynamicValues></item>"; Assert.AreEqual(expected, actual.OuterXml); }
public void PreprocessParametersAddsDirectValueForValidDoublyNestedNodesDynamicValueWithoutDefaultWithTextFirstAndMiddleChild() { var document = new XmlDocument(); var xml = "<item attrib=\"value\"><subItems><subItem><subSubItems>some text<subSubItem><value>$[value]</value></subSubItem>some text<subSubItem><value>$[value2]</value></subSubItem></subSubItems></subItem></subItems></item>"; document.LoadXml(xml); var task = new TestTask(); NetReflectorTypeTable typeTable = new NetReflectorTypeTable(); typeTable.Add(typeof(Item)); typeTable.Add(typeof(SubItem)); typeTable.Add(typeof(subSubItem)); var actual = task.PreprocessParameters(typeTable, document.DocumentElement); var expected = "<item attrib=\"value\"><subItems><subItem><subSubItems>some text<subSubItem><value></value></subSubItem>some text<subSubItem><value></value></subSubItem></subSubItems></subItem></subItems>" + "<dynamicValues>" + "<directValue>" + "<parameter>value</parameter>" + "<property>subItems[0].subSubItems[0].value</property>" + "</directValue>" + "<directValue>" + "<parameter>value2</parameter>" + "<property>subItems[0].subSubItems[1].value</property>" + "</directValue>" + "</dynamicValues></item>"; Assert.AreEqual(expected, actual.OuterXml); }
public void PreprocessParametersAddsDirectValueForValidNestedNodesDynamicValueWithoutDefaultWithComment() { var document = new XmlDocument(); var xml = "<item attrib=\"value\"><subItems><subItem>$[value]</subItem><!-- this is a comment --><subItem>$[value2]</subItem></subItems></item>"; document.LoadXml(xml); var task = new TestTask(); NetReflectorTypeTable typeTable = new NetReflectorTypeTable(); typeTable.Add(typeof(Item)); var actual = task.PreprocessParameters(typeTable, document.DocumentElement); var expected = "<item attrib=\"value\"><subItems><subItem></subItem><!-- this is a comment --><subItem></subItem></subItems>" + "<dynamicValues>" + "<directValue>" + "<parameter>value</parameter>" + "<property>subItems[0]</property>" + "</directValue>" + "<directValue>" + "<parameter>value2</parameter>" + "<property>subItems[1]</property>" + "</directValue>" + "</dynamicValues></item>"; Assert.AreEqual(expected, actual.OuterXml); }
public void PreprocessParametersReturnsOriginalNodeWhenNoDynamicValues() { var document = new XmlDocument(); var xml = "<item attrib=\"value\"><subItem>Text</subItem></item>"; document.LoadXml(xml); var task = new TestTask(); var actual = task.PreprocessParameters(new NetReflectorTypeTable(), document.DocumentElement); Assert.AreEqual(xml, actual.OuterXml); }
public void PreprocessParametersAddsDirectValueForValidDoublyNestedMixedDynamicValuesNodes() { var document = new XmlDocument(); var xml = "<item attrib=\"value\"><subItems><subItem><subSubItemsDV><subSubItemDV><prop>$[value]</prop></subSubItemDV></subSubItemsDV><prop>$[value2]</prop></subItem></subItems></item>"; document.LoadXml(xml); var task = new TestTask(); NetReflectorTypeTable typeTable = new NetReflectorTypeTable(); typeTable.Add(typeof(Item)); typeTable.Add(typeof(SubItem)); typeTable.Add(typeof(SubItemDV)); typeTable.Add(typeof(subSubItemDV)); var actual = task.PreprocessParameters(typeTable, document.DocumentElement); var expected = "<item attrib=\"value\"><subItems><subItem><subSubItemsDV>" + "<subSubItemDV>" + "<prop></prop>" + "<dynamicValues>" + "<directValue>" + "<parameter>value</parameter>" + "<property>prop</property>" + "</directValue>" + "</dynamicValues>" + "</subSubItemDV>" + "</subSubItemsDV>" + "<prop></prop>" + "</subItem></subItems>" + "<dynamicValues>" + "<directValue>" + "<parameter>value2</parameter>" + "<property>subItems[0].prop</property>" + "</directValue>" + "</dynamicValues>" + "</item>"; Assert.AreEqual(expected, actual.OuterXml); }