X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltoolingtest%2FMarshallingTest.h;h=af687e34657e082671eb70998115d198b2cb041d;hb=9736bf8a914e9b64ad37269829f59370f15fbcbb;hp=dd476c95bae25518802fae3fed8d9a5b9ceab18f;hpb=5ae1c899bd915741ccfc63465708b5395a09be72;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltoolingtest/MarshallingTest.h b/xmltoolingtest/MarshallingTest.h index dd476c9..af687e3 100644 --- a/xmltoolingtest/MarshallingTest.h +++ b/xmltoolingtest/MarshallingTest.h @@ -20,30 +20,30 @@ class MarshallingTest : public CxxTest::TestSuite { QName m_qname; + QName m_qtype; public: - MarshallingTest() : m_qname(SimpleXMLObject::NAMESPACE,SimpleXMLObject::LOCAL_NAME) {} + MarshallingTest() : m_qname(SimpleXMLObject::NAMESPACE,SimpleXMLObject::LOCAL_NAME,SimpleXMLObject::NAMESPACE_PREFIX), + m_qtype(SimpleXMLObject::NAMESPACE,SimpleXMLObject::TYPE_NAME,SimpleXMLObject::NAMESPACE_PREFIX) {} void setUp() { XMLObjectBuilder::registerBuilder(m_qname, new SimpleXMLObjectBuilder()); - Marshaller::registerMarshaller(m_qname, new SimpleXMLObjectMarshaller()); - Unmarshaller::registerUnmarshaller(m_qname, new SimpleXMLObjectUnmarshaller()); + XMLObjectBuilder::registerBuilder(m_qtype, new SimpleXMLObjectBuilder()); } void tearDown() { XMLObjectBuilder::deregisterBuilder(m_qname); - Marshaller::deregisterMarshaller(m_qname); - Unmarshaller::deregisterUnmarshaller(m_qname); + XMLObjectBuilder::deregisterBuilder(m_qtype); } void testMarshallingWithAttributes() { TS_TRACE("testMarshallingWithAttributes"); auto_ptr_XMLCh expected("Firefly"); - auto_ptr sxObject(dynamic_cast(XMLObjectBuilder::getBuilder(m_qname)->buildObject())); + auto_ptr sxObject(dynamic_cast(XMLObjectBuilder::buildOne(m_qname))); TS_ASSERT(sxObject.get()!=NULL); sxObject->setId(expected.get()); - DOMElement* rootElement = Marshaller::getMarshaller(sxObject.get())->marshall(sxObject.get()); + DOMElement* rootElement = sxObject->marshall(); string path=data_path + "SimpleXMLObjectWithAttribute.xml"; ifstream fs(path.c_str()); @@ -58,11 +58,11 @@ public: TS_TRACE("testMarshallingWithElementContent"); auto_ptr_XMLCh expected("Sample Content"); - auto_ptr sxObject(dynamic_cast(XMLObjectBuilder::getBuilder(m_qname)->buildObject())); + auto_ptr sxObject(dynamic_cast(XMLObjectBuilder::buildOne(m_qname))); TS_ASSERT(sxObject.get()!=NULL); sxObject->setValue(expected.get()); - DOMElement* rootElement = Marshaller::getMarshaller(sxObject.get())->marshall(sxObject.get()); + DOMElement* rootElement = sxObject->marshall(); string path=data_path + "SimpleXMLObjectWithContent.xml"; ifstream fs(path.c_str()); @@ -76,24 +76,30 @@ public: void testMarshallingWithChildElements() { TS_TRACE("testMarshallingWithChildElements"); - const XMLObjectBuilder* b=XMLObjectBuilder::getBuilder(m_qname); + const SimpleXMLObjectBuilder* b=dynamic_cast(XMLObjectBuilder::getBuilder(m_qname)); TS_ASSERT(b!=NULL); - auto_ptr sxObject(dynamic_cast(b->buildObject())); + auto_ptr sxObject(b->buildObject()); TS_ASSERT(sxObject.get()!=NULL); - ListOf(SimpleXMLObject) kids=sxObject->getSimpleXMLObjects(); - kids.push_back(dynamic_cast(b->buildObject())); - kids.push_back(dynamic_cast(b->buildObject())); - kids.push_back(dynamic_cast(b->buildObject())); + VectorOf(SimpleXMLObject) kids=sxObject->getSimpleXMLObjects(); + kids.push_back(b->buildObject()); + kids.push_back(b->buildObject()); + kids.push_back(b->buildObject()); // Test some collection stuff auto_ptr_XMLCh foo("Foo"); auto_ptr_XMLCh bar("Bar"); - kids[0]->setId(foo.get()); + auto_ptr_XMLCh baz("Baz"); + kids.begin()->setId(foo.get()); kids.at(2)->setValue(bar.get()); kids.erase(kids.begin()+1); + TS_ASSERT_SAME_DATA(kids.back()->getValue(), bar.get(), XMLString::stringLen(bar.get())); - DOMElement* rootElement = Marshaller::getMarshaller(sxObject.get())->marshall(sxObject.get()); + kids.push_back(b->buildObject(SimpleXMLObject::NAMESPACE,SimpleXMLObject::DERIVED_NAME,SimpleXMLObject::NAMESPACE_PREFIX)); + kids.back()->setSchemaType(&m_qtype); + kids.back()->setValue(baz.get()); + + DOMElement* rootElement = sxObject->marshall(); string path=data_path + "SimpleXMLObjectWithChildren.xml"; ifstream fs(path.c_str());