ed9609b3614d14515425faa241823245af9509a7
[shibboleth/cpp-opensaml.git] / samltest / saml2 / core / impl / Status20Test.h
1 /*
2  *  Copyright 2001-2007 Internet2
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include "internal.h"
18 #include <saml/saml2/core/Protocols.h>
19
20 using namespace opensaml::saml2p;
21
22 class Status20Test : public CxxTest::TestSuite, public SAMLObjectBaseTestCase {
23
24 public:
25     void setUp() {
26         singleElementFile = data_path + "saml2/core/impl/Status.xml";
27         childElementsFile  = data_path + "saml2/core/impl/StatusChildElements.xml";    
28         SAMLObjectBaseTestCase::setUp();
29     }
30     
31     void tearDown() {
32         SAMLObjectBaseTestCase::tearDown();
33     }
34
35     void testSingleElementUnmarshall() {
36         auto_ptr<XMLObject> xo(unmarshallElement(singleElementFile));
37         Status* status = dynamic_cast<Status*>(xo.get());
38         TS_ASSERT(status!=NULL);
39         TSM_ASSERT("StatusCode child element", status->getStatusCode()==NULL);
40         TSM_ASSERT("StatusMessage child element", status->getStatusMessage()==NULL);
41         TSM_ASSERT("StatusDetail child element", status->getStatusDetail()==NULL);
42     }
43
44     void testChildElementsUnmarshall() {
45         auto_ptr<XMLObject> xo(unmarshallElement(childElementsFile));
46         Status* status = dynamic_cast<Status*>(xo.get());
47         TS_ASSERT(status!=NULL);
48         TSM_ASSERT("StatusCode child element", status->getStatusCode()!=NULL);
49         TSM_ASSERT("StatusMessage child element", status->getStatusMessage()!=NULL);
50         TSM_ASSERT("StatusDetail child element", status->getStatusDetail()!=NULL);
51     }
52
53     void testSingleElementMarshall() {
54         Status* status=StatusBuilder::buildStatus();
55         assertEquals(expectedDOM, status);
56     }
57
58     void testChildElementsMarshall() {
59         Status* status=StatusBuilder::buildStatus();
60         status->setStatusCode(StatusCodeBuilder::buildStatusCode());
61         status->setStatusMessage(StatusMessageBuilder::buildStatusMessage());
62         status->setStatusDetail(StatusDetailBuilder::buildStatusDetail());
63         assertEquals(expectedChildElementsDOM, status);
64     }
65
66 };