protected static void VerifyFragment(GenDataBase genData, GenFragment genFragment, string expectedClass, FragmentType expectedType, string profileLabel, string profileText, string expected, bool isText, string parentClassName, GenDataDef profileDataDef) { Assert.AreEqual(expectedClass, genFragment.GetType().Name, "Fragment Class"); Assert.AreEqual(expectedType, genFragment.Fragment.FragmentType, "Fragment Fragment Type"); Assert.AreEqual(expectedType, genFragment.FragmentType, "Fragment Type"); Assert.AreEqual(isText, genFragment.IsTextFragment, "Is text fragment?"); if (genFragment.GenObject == null) { genFragment.GenObject = GetFirstObjectOfSubClass(GetFirstObject(genData), "Property"); } var fragment = genFragment.Fragment; Assert.AreEqual(expected, GenFragmentExpander.Expand(genData.GenDataDef, genFragment.GenObject, fragment), "Expanded fragment"); var genFragmentLabel = new GenFragmentLabel(fragment); Assert.AreEqual(profileLabel, genFragmentLabel.ProfileLabel(), "Profile label"); Assert.AreEqual(profileText, genFragment.ProfileText(ProfileFragmentSyntaxDictionary.ActiveProfileFragmentSyntaxDictionary), "Profile text"); if (parentClassName != null) { Assert.AreEqual(parentClassName, genFragment.Fragment.ClassName(), "Parent Class ID"); } var str = GenerateFragment(genData, genFragment); Assert.AreEqual(expected, str); var genDataDef = genData.GenDataDef; ValidateFragmentData(genDataDef, parentClassName, genFragment, profileDataDef); }
public void NestedInheritanceClassExpansionTest() { var d = LoadVirtualParentData(); var p = new GenCompactProfileParser(d.GenDataDef, "", NestedInheritanceProfile); var text = GenFragmentExpander.Expand(d.GenDataDef, d.Root, p.Fragment); Assert.AreEqual(InheritanceProfileResult, text); }
public void InheritanceClassExpansionTest() { var dataFile = GetTestDataFileName("InheritanceClassExpansionTest"); var d = PopulateInheritanceData(dataFile); var p = new GenCompactProfileParser(d.GenDataDef, "", InheritanceProfile); var text = GenFragmentExpander.Expand(d.GenDataDef, d.Root, p.Fragment); Assert.AreEqual(InheritanceProfileResult, text); }
public void InheritanceDataSaveTest() { var dataFile = GetTestDataFileName("InheritanceDataSaveTest"); var d = PopulateInheritanceData(dataFile); var p = GenParameters.CreateProfile(d.GenDataDef); p.GenObject = d.Root; var text = GenFragmentExpander.Expand(d.GenDataDef, d.Root, p.Fragment); Assert.AreEqual(VirtualDefinitionData, text); }
/// <summary> /// Verifies the expansion and generation of segments with empty items /// </summary> /// <param name="display">Which items are to display.</param> /// <param name="expected">The expected output.</param> /// <param name="cardinality">The segement cardinality being output.</param> protected static void VerifySegmentSeparator(string display, string expected, GenCardinality cardinality) { var d = SetUpSegmentSeparatorData(display); var g = SetUpSegmentSeparatorFragment(d, cardinality); g.GenObject = d.Root; Assert.AreEqual(expected, GenFragmentExpander.Expand(d.GenDataDef, ((GenFragment)g).GenObject, g.Fragment)); var str = GenerateFragment(d, g); Assert.AreEqual(expected, str); }
public string GetNodeExpansionText(GenDataBase genData, GenObject genObject) { GenObject = genObject; if (Fragment == null) { return(""); } var context = GenObject.GetContext(genObject ?? genData.Root, Fragment.ClassName()); if (context == null) { return(""); } return(GenFragmentExpander.Expand(genData.GenDataDef, context, Fragment)); }
private static GenProfileFragment ValidateExpansion(GenDataBase d, string txt, FragmentType[] expectedFragmentTypes, string expectedExpansion, string message, string expectedProfileText = null) { var expected = expectedProfileText ?? txt; var profile = new GenCompactProfileParser(d.GenDataDef, "", txt); Assert.AreEqual(expectedFragmentTypes.Count(), profile.Body.Count, "Number of fragments expected"); for (var i = 0; i < profile.Body.Count; i++) { Assert.AreEqual(expectedFragmentTypes[i], profile.Body.Fragment[i].FragmentType); } Assert.AreEqual(expected, profile.ProfileText( ProfileFragmentSyntaxDictionary.ActiveProfileFragmentSyntaxDictionary)); Assert.AreEqual(expectedExpansion, GenFragmentExpander.Expand(d.GenDataDef, d.Root, profile.Fragment), message); return(profile); }
public void GenLookupNoMatchTest() { const string txt = "SubClass does not exist"; const string profile = "`[Class:`[SubClass:`%Class.Name=SubClass.Name:`;" + txt + "`]`]`]"; var d = SetUpLookupData(); var f = d.GenDataDef; var p = new GenCompactProfileParser(f, "", profile); var g = ((GenSegment)((GenSegment)p.Body.Fragment[0]).Body.Fragment[0]).Body.Fragment[0]; Assert.AreEqual(FragmentType.Lookup, g.FragmentType); Assert.IsFalse(g.IsTextFragment); var genFragmentLabel = new GenFragmentLabel(g.Fragment); Assert.AreEqual("~Class.Name=SubClass.Name", genFragmentLabel.ProfileLabel()); Assert.AreEqual("`%Class.Name=SubClass.Name:`;" + txt + "`]", g.ProfileText(ProfileFragmentSyntaxDictionary.ActiveProfileFragmentSyntaxDictionary)); var c = GetLastObjectInSubClass(GetFirstObject(d)); // Has no subclasses Assert.AreEqual("Property", c.Attributes[0]); var s = GetFirstObjectOfSubClass(c, "SubClass"); g.ParentContainer.GenObject = c; g.GenObject = s; Assert.AreEqual(txt, GenFragmentExpander.Expand(d.GenDataDef, g.GenObject, g.Fragment)); var str = GenerateFragment(d, g); Assert.AreEqual(txt, str); c = GetFirstObject(d); Assert.AreEqual("Class", c.Attributes[0]); s = GetFirstObjectOfSubClass(c, "SubClass"); Assert.AreEqual("SubClass", s.Attributes[0]); g.GenObject = s; str = GenerateFragment(d, g); Assert.AreEqual("", str); }
public void FileStreamProfileTest() { const string txt = "`[Class>:`Class.Name`,`]"; const string fileName = "GenProfileTest.prf"; var d = SetUpData(); if (File.Exists(fileName)) { File.Delete(fileName); } File.WriteAllText(fileName, txt); var profile = new GenCompactProfileParser(d.GenDataDef, fileName, ""); Assert.AreEqual(1, profile.Body.Count, "Only one fragment expected"); Assert.AreEqual(FragmentType.Segment, profile.Body.Fragment[0].FragmentType); Assert.AreEqual(txt, profile.ProfileText( ProfileFragmentSyntaxDictionary.ActiveProfileFragmentSyntaxDictionary)); Assert.AreEqual("Class,SubClass,Property,", GenFragmentExpander.Expand(d.GenDataDef, d.Root, profile.Fragment), "Class list expected"); }