示例#1
0
 /// <summary>
 /// Verify that one of the nodes in items matches the expected one
 /// </summary>
 /// <param name="items"></param>
 /// <param name="expected"></param>
 bool SomeNodeMatches(XmlNode[] items, XmlNode expected)
 {
     foreach (XmlNode node in items)
     {
         if (TestXmlViewsUtils.NodesMatch(node, expected))
         {
             return(true);
         }
     }
     return(false);
 }
示例#2
0
        public void GenerateMlCustomString()
        {
            IFwMetaDataCache mdc         = FwMetaDataCacheClass.Create();
            string           m_sTestPath = Path.Combine(DirectoryFinder.FwSourceDirectory,
                                                        @"DbAccess\Test\SampleCm.xml");

            mdc.InitXml(m_sTestPath, true);

            XmlDocument docSrc = new XmlDocument();

            docSrc.LoadXml(
                "<generate class=\"LexEntry\" fieldType=\"mlstring\" restrictions=\"customOnly\"> "
                + "<column label=\"$label\"> "
                + "<seq field=\"Senses\" sep=\"$delimiter:commaSpace\"> "
                + "<string field=\"$fieldName\" ws=\"$ws:analysis\" class=\"LexEntry\"/> "
                + "</seq> "
                + "</column> "
                + "</generate>");
            XmlNode source = TestXmlViewsUtils.GetRootNode(docSrc, "generate");

            Assert.IsNotNull(source);

            PartGenerator generator = new PartGenerator(mdc, source);

            string[] fields = generator.FieldNames;
            Assert.AreEqual(1, fields.Length);
            Assert.IsTrue(StringArrayIncludes(fields, "custom"));

            XmlNode[] results = generator.Generate();

            // SampleCm.xml has three ML attrs on LexEntry
            Assert.AreEqual(1, results.Length);

            XmlDocument docExpected3 = new XmlDocument();

            docExpected3.LoadXml(
                "<column label=\"Restrictions\" originalLabel=\"Restrictions\" > "
                + "<seq field=\"Senses\" sep=\"$delimiter:commaSpace\"> "
                + "<string field=\"custom\" ws=\"$ws:analysis\" class=\"LexEntry\"/> "
                + "</seq> "
                + "</column>");
            XmlNode expected3 = TestXmlViewsUtils.GetRootNode(docExpected3, "column");

            Assert.IsTrue(SomeNodeMatches(results, expected3));
        }
示例#3
0
        public void GenerateParts()
        {
            IFwMetaDataCache mdc         = FwMetaDataCacheClass.Create();
            string           m_sTestPath = Path.Combine(DirectoryFinder.FwSourceDirectory,
                                                        @"DbAccess\Test\SampleCm.xml");

            mdc.InitXml(m_sTestPath, true);

            XmlDocument docSrc = new XmlDocument();

            docSrc.LoadXml(
                "<root> "
                + "<dummy1/> "
                + "<generate class=\"LexEntry\" fieldType=\"mlstring\" restrictions=\"none\"> "
                + "<column label=\"$fieldName\"> "
                + "<seq field=\"Senses\" sep=\"$delimiter:commaSpace\"> "
                + "<string field=\"$fieldName\" ws=\"$ws:analysis\"/> "
                + "</seq> "
                + "</column> "
                + "</generate> "
                + "<dummy2/> "
                + "<generate class=\"LexEntry\" fieldType=\"mlstring\" restrictions=\"none\"> "
                + "<dummyG label=\"$fieldName\"/> "
                + "</generate> "
                + "<dummy3/> "
                + "<dummy4/> "
                + "</root>");
            XmlNode source = TestXmlViewsUtils.GetRootNode(docSrc, "root");

            Assert.IsNotNull(source);

            List <XmlNode> nodes = PartGenerator.GetGeneratedChildren(source, mdc);

            Assert.AreEqual(1 + 3 + 1 + 3 + 2, nodes.Count);
            Assert.AreEqual("dummy1", nodes[0].Name);
            Assert.AreEqual("dummy2", nodes[4].Name);
            Assert.AreEqual("dummy3", nodes[8].Name);
            Assert.AreEqual("dummy4", nodes[9].Name);
            Assert.IsTrue(NameAndLabelOccur(nodes, 1, 4, "column", "CitationForm"));
            Assert.IsTrue(NameAndLabelOccur(nodes, 1, 4, "column", "Bibliography"));
            Assert.IsTrue(NameAndLabelOccur(nodes, 5, 8, "dummyG", "CitationForm"));
            Assert.IsTrue(NameAndLabelOccur(nodes, 5, 8, "dummyG", "custom"));
        }
示例#4
0
        public void GenerateMlCustomString()
        {
            XmlDocument docSrc = new XmlDocument();

            docSrc.LoadXml(
                "<generate class=\"LexEntry\" fieldType=\"mlstring\" restrictions=\"customOnly\"> "
                + "<column label=\"$label\"> "
                + "<seq field=\"Senses\" sep=\"$delimiter:commaSpace\"> "
                + "<string field=\"$fieldName\" ws=\"$ws:analysis\" class=\"LexEntry\"/> "
                + "</seq> "
                + "</column> "
                + "</generate>");
            XmlNode source = TestXmlViewsUtils.GetRootNode(docSrc, "generate");

            Assert.IsNotNull(source);

            PartGenerator generator = new PartGenerator(Cache, source);

            string[] fields = generator.FieldNames;
            Assert.AreEqual(1, fields.Length);
            Assert.IsTrue(StringArrayIncludes(fields, "MyRestrictions"));

            XmlNode[] results = generator.Generate();

            // SampleCm.xml has three ML attrs on LexEntry
            Assert.AreEqual(1, results.Length);

            XmlDocument docExpected3 = new XmlDocument();

            docExpected3.LoadXml(
                "<column label=\"MyRestrictions\" originalLabel=\"MyRestrictions\" > "
                + "<seq field=\"Senses\" sep=\"$delimiter:commaSpace\"> "
                + "<string field=\"MyRestrictions\" ws=\"$ws:analysis\" class=\"LexEntry\"/> "
                + "</seq> "
                + "</column>");
            XmlNode expected3 = TestXmlViewsUtils.GetRootNode(docExpected3, "column");

            Assert.IsTrue(SomeNodeMatches(results, expected3));
        }
示例#5
0
        public void GenerateParts()
        {
            XmlDocument docSrc = new XmlDocument();

            docSrc.LoadXml(
                "<root> "
                + "<dummy1/> "
                + "<generate class=\"LexEntry\" fieldType=\"mlstring\" restrictions=\"none\"> "
                + "<column label=\"$fieldName\"> "
                + "<seq field=\"Senses\" sep=\"$delimiter:commaSpace\"> "
                + "<string field=\"$fieldName\" ws=\"$ws:analysis\"/> "
                + "</seq> "
                + "</column> "
                + "</generate> "
                + "<dummy2/> "
                + "<generate class=\"LexEntry\" fieldType=\"mlstring\" restrictions=\"none\"> "
                + "<dummyG label=\"$fieldName\"/> "
                + "</generate> "
                + "<dummy3/> "
                + "<dummy4/> "
                + "</root>");
            XmlNode source = TestXmlViewsUtils.GetRootNode(docSrc, "root");

            Assert.IsNotNull(source);

            List <XmlNode> nodes = PartGenerator.GetGeneratedChildren(source, Cache);

            Assert.AreEqual(1 + 7 + 1 + 7 + 2, nodes.Count);
            Assert.AreEqual("dummy1", nodes[0].Name);
            Assert.AreEqual("dummy2", nodes[1 + 7].Name);
            Assert.AreEqual("dummy3", nodes[1 + 7 + 1 + 7].Name);
            Assert.AreEqual("dummy4", nodes[1 + 7 + 1 + 7 + 1].Name);
            Assert.IsTrue(NameAndLabelOccur(nodes, 1, 1 + 7, "column", "CitationForm"));
            Assert.IsTrue(NameAndLabelOccur(nodes, 1, 1 + 7, "column", "Bibliography"));
            Assert.IsTrue(NameAndLabelOccur(nodes, 1 + 7 + 1, 1 + 7 + 1 + 7, "dummyG", "CitationForm"));
            Assert.IsTrue(NameAndLabelOccur(nodes, 1 + 7 + 1, 1 + 7 + 1 + 7, "dummyG", "MyRestrictions"));
        }
示例#6
0
        public void GenerateMlString()
        {
            XmlDocument docSrc = new XmlDocument();

            docSrc.LoadXml(
                "<generate class=\"LexEntry\" fieldType=\"mlstring\" restrictions=\"none\"> "
                + "<column label=\"$label\"> "
                + "<seq field=\"Senses\" sep=\"$delimiter:commaSpace\"> "
                + "<string field=\"$fieldName\" ws=\"$ws:analysis\"/> "
                + "</seq> "
                + "</column> "
                + "</generate>");
            XmlNode source = TestXmlViewsUtils.GetRootNode(docSrc, "generate");

            Assert.IsNotNull(source);

            PartGenerator generator = new PartGenerator(Cache, source);

            string[] fields = generator.FieldNames;
            Assert.AreEqual(7, fields.Length);
            Assert.IsTrue(StringArrayIncludes(fields, "CitationForm"));
            Assert.IsTrue(StringArrayIncludes(fields, "Bibliography"));
            Assert.IsTrue(StringArrayIncludes(fields, "Comment"));
            Assert.IsTrue(StringArrayIncludes(fields, "LiteralMeaning"));
            Assert.IsTrue(StringArrayIncludes(fields, "Restrictions"));
            Assert.IsTrue(StringArrayIncludes(fields, "SummaryDefinition"));
            Assert.IsTrue(StringArrayIncludes(fields, "MyRestrictions"));

            XmlNode[] results = generator.Generate();

            Assert.AreEqual(7, results.Length);

            XmlDocument docExpected = new XmlDocument();

            // LT-6956 : sense the test is calling Generate - add the "originalLabel" attribute.
            docExpected.LoadXml(
                "<column label=\"CitationForm\" originalLabel=\"CitationForm\" > "
                + "<seq field=\"Senses\" sep=\"$delimiter:commaSpace\"> "
                + "<string field=\"CitationForm\" ws=\"$ws:analysis\" class=\"LexEntry\"/> "
                + "</seq> "
                + "</column>");
            XmlNode expected = TestXmlViewsUtils.GetRootNode(docExpected, "column");

            Assert.IsTrue(SomeNodeMatches(results, expected), "CitationForm field is wrong");

            XmlDocument docExpected2 = new XmlDocument();

            docExpected2.LoadXml(
                "<column label=\"Bibliography\" originalLabel=\"Bibliography\"> "
                + "<seq field=\"Senses\" sep=\"$delimiter:commaSpace\"> "
                + "<string field=\"Bibliography\" ws=\"$ws:analysis\" class=\"LexEntry\"/> "
                + "</seq> "
                + "</column>");
            XmlNode expected2 = TestXmlViewsUtils.GetRootNode(docExpected2, "column");

            Assert.IsTrue(SomeNodeMatches(results, expected2), "Bibliography field is wrong");

            XmlDocument docExpected3 = new XmlDocument();

            docExpected3.LoadXml(
                "<column label=\"MyRestrictions\" originalLabel=\"MyRestrictions\"> "
                + "<seq field=\"Senses\" sep=\"$delimiter:commaSpace\"> "
                + "<string field=\"MyRestrictions\" ws=\"$ws:analysis\" class=\"LexEntry\"/> "
                + "</seq> "
                + "</column>");
            XmlNode expected3 = TestXmlViewsUtils.GetRootNode(docExpected3, "column");

            Assert.IsTrue(SomeNodeMatches(results, expected3), "generated MyRestrictions field is wrong");
        }