Completed 2.0 assertions schema classes.
[shibboleth/cpp-opensaml.git] / samltest / saml1 / core / impl / ActionTest.h
1 /*\r
2  *  Copyright 2001-2006 Internet2\r
3  * \r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 #include "internal.h"\r
18 #include <saml/saml1/core/Assertions.h>\r
19 \r
20 using namespace opensaml::saml1;\r
21 \r
22 class ActionTest : public CxxTest::TestSuite, public SAMLObjectBaseTestCase {\r
23     XMLCh* expectedContents;\r
24     XMLCh* expectedNamespace;\r
25 \r
26 public:\r
27     void setUp() {\r
28         singleElementFile = data_path + "saml1/core/impl/singleAction.xml";\r
29         singleElementOptionalAttributesFile  = data_path + "saml1/core/impl/singleActionAttributes.xml";    \r
30         expectedContents = XMLString::transcode("Action Contents");\r
31         expectedNamespace = XMLString::transcode("namespace");\r
32         SAMLObjectBaseTestCase::setUp();\r
33     }\r
34     \r
35     void tearDown() {\r
36         XMLString::release(&expectedContents);\r
37         XMLString::release(&expectedNamespace);\r
38         SAMLObjectBaseTestCase::tearDown();\r
39     }\r
40 \r
41     void testSingleElementUnmarshall() {\r
42         auto_ptr<XMLObject> xo(unmarshallElement(singleElementFile));\r
43         Action* action = dynamic_cast<Action*>(xo.get());\r
44         TS_ASSERT(action!=NULL);\r
45         TSM_ASSERT("namespace attribute present", action->getNamespace()==NULL);\r
46         TSM_ASSERT("Contents present", action->getAction()==NULL);\r
47     }\r
48 \r
49     void testSingleElementOptionalAttributesUnmarshall() {\r
50         auto_ptr<XMLObject> xo(unmarshallElement(singleElementOptionalAttributesFile));\r
51         Action* action = dynamic_cast<Action*>(xo.get());\r
52         TSM_ASSERT_SAME_DATA("namespace attribute ", expectedNamespace, action->getNamespace(), XMLString::stringLen(expectedNamespace));\r
53         TSM_ASSERT_SAME_DATA("Contents ", expectedContents, action->getAction(), XMLString::stringLen(expectedContents));\r
54     }\r
55 \r
56     void testSingleElementMarshall() {\r
57         assertEquals(expectedDOM, ActionBuilder::buildAction());\r
58     }\r
59 \r
60     void testSingleElementOptionalAttributesMarshall() {\r
61         Action* action=ActionBuilder::buildAction();\r
62         action->setNamespace(expectedNamespace);\r
63         action->setAction(expectedContents);\r
64         assertEquals(expectedOptionalAttributesDOM, action);\r
65     }\r
66 \r
67 };\r