Added ValidatorSuite around groups of static validators.
[shibboleth/cpp-xmltooling.git] / xmltoolingtest / KeyInfoTest.h
index 0d742ba..8672906 100644 (file)
@@ -19,6 +19,8 @@
 #include <fstream>\r
 #include <xmltooling/signature/KeyInfo.h>\r
 \r
+using namespace xmlsignature;\r
+\r
 class KeyInfoTest : public CxxTest::TestSuite {\r
 public:\r
     KeyInfoTest() {}\r
@@ -36,7 +38,7 @@ public:
 \r
         string path=data_path + "KeyInfo1.xml";\r
         ifstream fs(path.c_str());\r
-        DOMDocument* doc=validatingPool->parse(fs);\r
+        DOMDocument* doc=XMLToolingConfig::getConfig().getValidatingParser().parse(fs);\r
         TS_ASSERT(doc!=NULL);\r
 \r
         const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());\r
@@ -56,6 +58,50 @@ public:
         auto_ptr_XMLCh expected("Public Key for CN=xmldap.org, OU=Domain Control Validated, O=xmldap.org");\r
         TSM_ASSERT_SAME_DATA("KeyName was not expected value",\r
             expected.get(), kiObject->getKeyNames().front()->getName(), XMLString::stringLen(expected.get()));\r
+\r
+        KeyInfoSchemaValidators.validate(kiObject.get());\r
     }\r
 \r
+    void testKeyInfo2() {\r
+        TS_TRACE("testKeyInfo2");\r
+\r
+        string path=data_path + "KeyInfo2.xml";\r
+        ifstream fs(path.c_str());\r
+        DOMDocument* doc=XMLToolingConfig::getConfig().getValidatingParser().parse(fs);\r
+        TS_ASSERT(doc!=NULL);\r
+\r
+        const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());\r
+        TS_ASSERT(b!=NULL);\r
+\r
+        auto_ptr<KeyInfo> kiObject(\r
+            dynamic_cast<KeyInfo*>(b->buildFromDocument(doc))\r
+            );\r
+        TS_ASSERT(kiObject.get()!=NULL);\r
+        TSM_ASSERT_EQUALS("Number of child elements was not expected value",\r
+            2, kiObject->getOrderedChildren().size());\r
+        TSM_ASSERT_EQUALS("Number of child elements was not expected value",\r
+            1, kiObject->getRetrievalMethods().size());\r
+        TSM_ASSERT_EQUALS("Number of child elements was not expected value",\r
+            2, kiObject->getSPKIDatas().front()->getSPKISexps().size());\r
+\r
+        KeyInfoSchemaValidators.validate(kiObject.get());\r
+    }\r
+\r
+    void testKeyInfo3() {\r
+        TS_TRACE("testKeyInfo3");\r
+\r
+        string path=data_path + "KeyInfo3.xml";\r
+        ifstream fs(path.c_str());\r
+        DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(fs);\r
+        TS_ASSERT(doc!=NULL);\r
+\r
+        const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());\r
+        TS_ASSERT(b!=NULL);\r
+\r
+        auto_ptr<KeyInfo> kiObject(\r
+            dynamic_cast<KeyInfo*>(b->buildFromDocument(doc))\r
+            );\r
+        TS_ASSERT(kiObject.get()!=NULL);\r
+        TS_ASSERT_THROWS(KeyInfoSchemaValidators.validate(kiObject.get()),ValidationException);\r
+    }\r
 };\r