Refactored simple content and child-handling into mixin classes.
[shibboleth/cpp-xmltooling.git] / xmltoolingtest / SignatureTest.h
index 2582b15..70db6b0 100644 (file)
@@ -84,22 +84,26 @@ public:
 };\r
 \r
 class SignatureTest : public CxxTest::TestSuite {\r
-    QName m_qname;\r
 public:\r
-    SignatureTest() : m_qname(SimpleXMLObject::NAMESPACE,SimpleXMLObject::LOCAL_NAME) {}\r
-\r
     void setUp() {\r
-        XMLObjectBuilder::registerBuilder(m_qname, new SimpleXMLObjectBuilder());\r
+        QName qname(SimpleXMLObject::NAMESPACE,SimpleXMLObject::LOCAL_NAME);\r
+        QName qtype(SimpleXMLObject::NAMESPACE,SimpleXMLObject::TYPE_NAME);\r
+        XMLObjectBuilder::registerBuilder(qname, new SimpleXMLObjectBuilder());\r
+        XMLObjectBuilder::registerBuilder(qtype, new SimpleXMLObjectBuilder());\r
     }\r
 \r
     void tearDown() {\r
-        XMLObjectBuilder::deregisterBuilder(m_qname);\r
+        QName qname(SimpleXMLObject::NAMESPACE,SimpleXMLObject::LOCAL_NAME);\r
+        QName qtype(SimpleXMLObject::NAMESPACE,SimpleXMLObject::TYPE_NAME);\r
+        XMLObjectBuilder::deregisterBuilder(qname);\r
+        XMLObjectBuilder::deregisterBuilder(qtype);\r
     }\r
 \r
     void testSignature() {\r
         TS_TRACE("testSignature");\r
 \r
-        const SimpleXMLObjectBuilder* b=dynamic_cast<const SimpleXMLObjectBuilder*>(XMLObjectBuilder::getBuilder(m_qname));\r
+        QName qname(SimpleXMLObject::NAMESPACE,SimpleXMLObject::LOCAL_NAME);\r
+        const SimpleXMLObjectBuilder* b=dynamic_cast<const SimpleXMLObjectBuilder*>(XMLObjectBuilder::getBuilder(qname));\r
         TS_ASSERT(b!=NULL);\r
         \r
         auto_ptr<SimpleXMLObject> sxObject(b->buildObject());\r
@@ -115,7 +119,8 @@ public:
         kids[1]->setValue(bar.get());\r
         \r
         // Append a Signature.\r
-        Signature* sig=dynamic_cast<Signature*>(XMLObjectBuilder::buildObject(QName(XMLConstants::XMLSIG_NS,Signature::LOCAL_NAME)));\r
+        const SignatureBuilder* sigb=dynamic_cast<const SignatureBuilder*>(XMLObjectBuilder::getBuilder(QName(XMLConstants::XMLSIG_NS,Signature::LOCAL_NAME)));\r
+        Signature* sig=sigb->buildObject();\r
         sxObject->setSignature(sig);\r
         \r
         // Signing context for the whole document.\r
@@ -125,11 +130,11 @@ public:
         \r
         string buf;\r
         XMLHelper::serialize(rootElement, buf);\r
-        TS_TRACE(buf.c_str());\r
+        //TS_TRACE(buf.c_str());\r
 \r
         istringstream in(buf);\r
         DOMDocument* doc=nonvalidatingPool->parse(in);\r
-        auto_ptr<SimpleXMLObject> sxObject2(dynamic_cast<SimpleXMLObject*>(b->buildObject()->unmarshall(doc->getDocumentElement(),true)));\r
+        auto_ptr<SimpleXMLObject> sxObject2(dynamic_cast<SimpleXMLObject*>(b->buildFromDocument(doc)));\r
         TS_ASSERT(sxObject2.get()!=NULL);\r
         TS_ASSERT(sxObject2->getSignature()!=NULL);\r
         \r