Removed ChildlessElement class references, ensure ComplexElement gets copied during...
[shibboleth/cpp-opensaml.git] / samltest / signature / SAML1RequestTest.h
index b9390a7..6b63d1b 100644 (file)
@@ -16,6 +16,7 @@
 \r
 #include "signature/SAMLSignatureTestBase.h"\r
 \r
+#include <saml/saml1/core/Assertions.h>\r
 #include <saml/saml1/core/Protocols.h>\r
 \r
 #include <fstream>\r
@@ -57,13 +58,14 @@ public:
         // Append a Signature.\r
         Signature* sig=SignatureBuilder::buildSignature();\r
         request->setSignature(sig);\r
-        sig->setSigningKey(m_key->clone());\r
+        Locker locker(m_resolver);\r
+        sig->setSigningKey(m_resolver->getKey());\r
 \r
         // Build KeyInfo.\r
         KeyInfo* keyInfo=KeyInfoBuilder::buildKeyInfo();\r
         X509Data* x509Data=X509DataBuilder::buildX509Data();\r
         keyInfo->getX509Datas().push_back(x509Data);\r
-        for_each(m_certs.begin(),m_certs.end(),bind1st(_addcert(),x509Data));\r
+        for_each(m_resolver->getCertificates().begin(),m_resolver->getCertificates().end(),bind1st(_addcert(),x509Data));\r
         sig->setKeyInfo(keyInfo);\r
 \r
         // Sign while marshalling.\r
@@ -83,13 +85,14 @@ public:
         DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);\r
         const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());\r
 \r
-        assertEquals(expectedChildElementsDOM, b->buildFromDocument(doc));\r
+        auto_ptr<XMLObject> request2(b->buildFromDocument(doc));\r
+        assertEquals("Unmarshalled request does not match", expectedChildElementsDOM, request2.get(), false);\r
         \r
         try {\r
             SignatureProfileValidator spv;\r
-            SignatureValidator sv(new KeyResolver(m_key->clone()));\r
-            spv.validate(request->getSignature());\r
-            sv.validate(request->getSignature());\r
+            SignatureValidator sv(new KeyResolver(m_resolver->getKey()));\r
+            spv.validate(dynamic_cast<Request*>(request2.get())->getSignature());\r
+            sv.validate(dynamic_cast<Request*>(request2.get())->getSignature());\r
         }\r
         catch (XMLToolingException& e) {\r
             TS_TRACE(e.what());\r