Example #1
0
        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);
        }
Example #5
0
        /// <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);
        }
Example #6
0
        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);
        }
Example #8
0
        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");
        }