2c97256aec15a74774d8cdaf229a754b466b7dad
[shibboleth/sp.git] / shar / test-client.cpp
1 /*
2  *  Copyright 2001-2005 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 #ifdef WIN32
18 # define _CRT_NONSTDC_NO_DEPRECATE 1
19 # define _CRT_SECURE_NO_DEPRECATE 1
20 #endif
21
22 #include <shib-target/shib-target.h>
23 #include <shibsp/SPConfig.h>
24 #include <iostream>
25
26 using namespace shibsp;
27 using namespace shibtarget;
28 using namespace saml;
29 using namespace xmltooling;
30 using namespace std;
31
32 int main (int argc, char *argv[])
33 {
34     if (argc<=1) {
35         cerr << "usage: testclient <integer>" << endl;
36         return -1;
37     }
38   const char* config=getenv("SHIBCONFIG");
39   if (!config)
40     config=SHIB_CONFIG;
41   const char* schemadir=getenv("SHIBSCHEMAS");
42   if (!schemadir)
43     schemadir=SHIB_SCHEMAS;
44
45   ShibTargetConfig& conf=ShibTargetConfig::getConfig();
46   SPConfig::getConfig().setFeatures(SPConfig::Listener | SPConfig::InProcess);
47   if (!conf.init(schemadir) || !conf.load(config))
48       return -10;
49
50   try {
51       DDF in("ping");
52       DDFJanitor injan(in);
53       in.integer(atol(argv[1]));
54
55       DDF out=SPConfig::getConfig().getServiceProvider()->getListenerService()->send(in);
56       DDFJanitor outjan(out);
57
58       cerr << argv[1] << " -> " << out.integer() << "\n";
59   }
60   catch (exception& e) {
61       cerr << "caught exception: " << e.what() << "\n";
62   }
63   
64   conf.shutdown();
65   return 0;
66 }