You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ja...@apache.org on 2005/12/21 12:02:18 UTC
svn commit: r358263 - in
/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp:
getBindingDetail_v2Test1Client.cpp getServiceDetail_v2Test1Client.cpp
getTModelDetail_v2Test1Client.cpp
Author: jamejose
Date: Wed Dec 21 03:01:57 2005
New Revision: 358263
URL: http://svn.apache.org/viewcvs?rev=358263&view=rev
Log:
Test cases for inquire APIs
Added:
webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getBindingDetail_v2Test1Client.cpp
webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getServiceDetail_v2Test1Client.cpp
webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getTModelDetail_v2Test1Client.cpp
Added: webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getBindingDetail_v2Test1Client.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getBindingDetail_v2Test1Client.cpp?rev=358263&view=auto
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getBindingDetail_v2Test1Client.cpp (added)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getBindingDetail_v2Test1Client.cpp Wed Dec 21 03:01:57 2005
@@ -0,0 +1,234 @@
+/*
+ * Copyright 2003-2004 The Apache Software Foundation.
+// (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+#include <string>
+#include <iostream>
+#include <stdlib.h>
+#include <axis/AxisException.hpp>
+using namespace std;
+
+#include "Inquire.hpp"
+
+#define ARRAYSIZE 1
+
+char endpoint[256];
+
+int
+main(int argc, char *argv[])
+{
+ if( argc < 2 )
+ {
+ printf( "Usage: %s [endpoint] ", argv[0]);
+ exit(0);
+ }
+
+ sprintf(endpoint, argv[1]);
+ char* cpname = "2.0";
+ int outputSize=0;
+ Inquire *ws = new Inquire(endpoint);
+
+ bool bSuccess = false;
+ int iRetryIterationCount = 3;
+
+ do
+ {
+ try
+ {
+ char buffer[100];
+ // Storing Binding Key to Buffer
+ sprintf(buffer, "585e9258-c7b7-4701-986e-1646f7166ed1");
+
+ /* Case1 :
+ In this we pass one binding key and get back one binding Template and then displays the details*/
+ bindingKey_Array arrBindingKeys;
+ bindingKey * arrayBinding = new bindingKey[ARRAYSIZE];
+ int i;
+ for (i = 0; i < ARRAYSIZE; i++)
+ {
+ arrayBinding[i] = new char[100];
+ strcpy(arrayBinding[i],buffer);
+ }
+ arrBindingKeys.set(arrayBinding,ARRAYSIZE);
+ cout << "invoking get_bindingDetail ...\n";
+ bindingTemplate_Array* bindingTemplates = ws->get_bindingDetail(&arrBindingKeys, cpname);
+ outputSize = 0;
+ bindingTemplate ** arrayOutBinding = bindingTemplates->get(outputSize);
+ cout << "bindingTemplate_Array size = " << outputSize << endl;
+ for( i = 0; i < outputSize; i++ )
+ {
+ cout << "Binding Template " << i + 1 << endl;
+ cout << "\t Binding Key Ref = " << arrayOutBinding[i]->bindingKey_Ref<<endl;
+ cout << "\t Service Key Ref = " << arrayOutBinding[i]->serviceKey_Ref<<endl;
+ //Display Description
+ int outputSizeDesc=0;
+ description ** arrayDesc = arrayOutBinding[i]->description_Ref->get(outputSizeDesc);
+ cout << "\t Description ... " << endl;
+ for( int j = 0; j < outputSizeDesc; j++)
+ {
+ cout << "\t\t Description " << j+1 << " = " << arrayDesc[j]->description_value<< endl;
+ }
+ /*if( arrayOutBinding[i]->accessPoint_Ref)
+ {
+ cout << "\t Access Point " << endl;
+ cout << "\t\t Point = " << arrayOutBinding[i]->accessPoint_Ref->accessPoint_value << endl;
+ cout << "\t\t URL Type = " << arrayOutBinding[i]->accessPoint_Ref->URLType_Ref << endl;
+ }*/
+ if(arrayOutBinding[i]->tModelInstanceDetails_Ref){
+ int tModelInstanceInfoSize=0;
+ tModelInstanceInfo ** arrtModelInstInfo = arrayOutBinding[i]->tModelInstanceDetails_Ref->tModelInstanceInfo_Ref->get(tModelInstanceInfoSize);
+ cout << "\ttModelInstanceInfo..." << endl;
+ for(int k=0;k<tModelInstanceInfoSize;k++){
+ cout<<"\t\ttModelKey Value = " << arrtModelInstInfo[k]<< endl;
+ }
+ }
+ }
+
+
+ /* Case2:
+ In this we pass 2 bindingKeys and get back two business Services */
+
+ arrayBinding = new bindingKey[2];
+ for (i = 0; i < 2; i++)
+ {
+ arrayBinding[i] = new char[100];
+ }
+ strcpy(arrayBinding[0],buffer);
+ strcpy(arrayBinding[1],"2ebf3e2e-58c0-4022-83a6-eed8b1eea6e8");
+ arrBindingKeys.set(arrayBinding,2);
+ cout << "\n\ninvoking get_bindingDetail ...\n";
+ //Inquire *ws1 = new Inquire(endpoint);
+ bindingTemplates = ws->get_bindingDetail(&arrBindingKeys, cpname);
+ outputSize = 0;
+ arrayOutBinding = bindingTemplates->get(outputSize);
+ cout << "bindingTemplate_Array size = " << outputSize << endl;
+ for( i = 0; i < outputSize; i++ )
+ {
+ cout << "Binding Template " << i + 1 << endl;
+ cout << "\t Binding Key Ref = " << arrayOutBinding[i]->bindingKey_Ref<<endl;
+ cout << "\t Service Key Ref = " << arrayOutBinding[i]->serviceKey_Ref<<endl;
+ //Display Description
+ int outputSizeDesc=0;
+ description ** arrayDesc = arrayOutBinding[i]->description_Ref->get(outputSizeDesc);
+ cout << "\t Description ... " << endl;
+ for( int j = 0; j < outputSizeDesc; j++)
+ {
+ cout << "\t\t Description " << j+1 << " = " << arrayDesc[j]->description_value<< endl;
+ }
+
+ /*if( arrayOutBinding[i]->accessPoint_Ref)
+ {
+ cout << "\t Access Point " << endl;
+ cout << "\t\t Point = " << arrayOutBinding[i]->accessPoint_Ref->accessPoint_value << endl;
+ cout << "\t\t URL Type = " << arrayOutBinding[i]->accessPoint_Ref->URLType_Ref << endl;
+ }*/
+ if(arrayOutBinding[i]->tModelInstanceDetails_Ref){
+ int tModelInstanceInfoSize=0;
+ tModelInstanceInfo ** arrtModelInstInfo = arrayOutBinding[i]->tModelInstanceDetails_Ref->tModelInstanceInfo_Ref->get(tModelInstanceInfoSize);
+ cout << "\ttModelInstanceInfo..." << endl;
+ for(int k=0;k<tModelInstanceInfoSize;k++){
+ cout<<"\t\ttModelKey Value = " << arrtModelInstInfo[k]<< endl;
+ }
+ }
+
+ }
+
+ /* Case 3:
+ In this we pass a non existing Binding Key */
+
+
+ arrayBinding = new bindingKey[2];
+ for (i = 0; i < 1; i++)
+ {
+ arrayBinding[i] = new char[100];
+ strcpy(arrayBinding[0],"05e39405-6216-46bd-8f4c-dad67cda4c15");
+ }
+
+
+ arrBindingKeys.set(arrayBinding,1);
+ //Inquire *ws2 = new Inquire(endpoint);
+ cout << "\n\ninvoking get_bindingDetail ...\n";
+ bindingTemplates = ws->get_bindingDetail(&arrBindingKeys, cpname);
+ outputSize = 0;
+ arrayOutBinding = bindingTemplates->get(outputSize);
+ cout << "bindingTemplate_Array size = " << outputSize << endl;
+ for( i = 0; i < outputSize; i++ )
+ {
+ cout << "Binding Template " << i + 1 << endl;
+ cout << "\t Binding Key Ref = " << arrayOutBinding[i]->bindingKey_Ref<<endl;
+ cout << "\t Service Key Ref = " << arrayOutBinding[i]->serviceKey_Ref<<endl;
+ //Display Description
+ int outputSizeDesc=0;
+ description ** arrayDesc = arrayOutBinding[i]->description_Ref->get(outputSizeDesc);
+ cout << "\t Description ... " << endl;
+ for( int j = 0; j < outputSizeDesc; j++)
+ {
+ cout << "\t\t Description " << j+1 << " = " << arrayDesc[j]->description_value<< endl;
+ }
+
+
+ /*if( arrayOutBinding[i]->accessPoint_Ref)
+ {
+ cout << "\t Access Point " << endl;
+ cout << "\t\t Point = " << arrayOutBinding[i]->accessPoint_Ref->accessPoint_value << endl;
+ cout << "\t\t URL Type = " << arrayOutBinding[i]->accessPoint_Ref->URLType_Ref << endl;
+ }*/
+
+ if(arrayOutBinding[i]->tModelInstanceDetails_Ref){
+ int tModelInstanceInfoSize=0;
+ tModelInstanceInfo ** arrtModelInstInfo = arrayOutBinding[i]->tModelInstanceDetails_Ref->tModelInstanceInfo_Ref->get(tModelInstanceInfoSize);
+ cout << "\ttModelInstanceInfo..." << endl;
+ for(int k=0;k<tModelInstanceInfoSize;k++){
+ cout<<"\t\ttModelKey Value = " << arrtModelInstInfo[k]<< endl;
+ }
+ }
+ }
+ bSuccess = true;
+ }
+ catch(AxisException& e)
+ {
+ bool bSilent = false;
+
+ if( e.getExceptionCode() == CLIENT_TRANSPORT_OPEN_CONNECTION_FAILED)
+ {
+ if( iRetryIterationCount > 0)
+ {
+ bSilent = true;
+ }
+ }
+ else
+ {
+ iRetryIterationCount = 0;
+ }
+
+ if( !bSilent)
+ {
+ printf("Exception caught : %s\n", e.what());
+ }
+ }
+ iRetryIterationCount--;
+ } while( iRetryIterationCount > 0 && !bSuccess);
+
+ return 0;
+}
Added: webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getServiceDetail_v2Test1Client.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getServiceDetail_v2Test1Client.cpp?rev=358263&view=auto
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getServiceDetail_v2Test1Client.cpp (added)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getServiceDetail_v2Test1Client.cpp Wed Dec 21 03:01:57 2005
@@ -0,0 +1,256 @@
+/*
+ * Copyright 2003-2004 The Apache Software Foundation.
+// (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+#include <string>
+#include <iostream>
+#include <stdlib.h>
+#include <axis/AxisException.hpp>
+using namespace std;
+
+#include "Inquire.hpp"
+
+#define ARRAYSIZE 1
+
+char endpoint[256];
+
+int
+main(int argc, char *argv[])
+{
+ if( argc < 2 )
+ {
+ printf( "Usage: %s [endpoint] ", argv[0]);
+ exit(0);
+ }
+
+ sprintf(endpoint, argv[1]);
+ char* cpname = "2.0";
+ int outputSize=0;
+ Inquire *ws = new Inquire(endpoint);
+
+ bool bSuccess = false;
+ int iRetryIterationCount = 3;
+
+ do
+ {
+ try
+ {
+ char buffer[100];
+ // Storing service Key to Buffer
+ sprintf(buffer, "f0aa27f0-88e7-4750-808a-a4d038a48ae7");
+
+ /* Case1 :
+ In this we pass one service key and get back one business service and then displays the details*/
+ serviceKey_Array arrServiceKeys;
+ serviceKey * arrayService = new serviceKey[ARRAYSIZE];
+ int i;
+ for (i = 0; i < ARRAYSIZE; i++)
+ {
+ arrayService[i] = new char[100];
+ strcpy(arrayService[i],buffer);
+ }
+ arrServiceKeys.set(arrayService,ARRAYSIZE);
+ cout << "invoking get_serviceDetail ...\n";
+ businessService_Array* businessServices = ws->get_serviceDetail(&arrServiceKeys, cpname);
+ outputSize = 0;
+ businessService ** arrayOutService = businessServices->get(outputSize);
+ cout << "businessService_Array size = " << outputSize << endl;
+ for( i = 0; i < outputSize; i++ )
+ {
+ cout << "Business Service " << i + 1 << endl;
+ cout << "\t Business Key Ref = " << arrayOutService[i]->businessKey_Ref<<endl;
+ cout << "\t Service Key Ref = " << arrayOutService[i]->serviceKey_Ref<<endl;
+ cout << "\t Names... \n" ;
+ int outputSizeName = 0;
+
+ //Display name of the business Service
+
+ name** arrayName = arrayOutService[i]->name_Ref->get(outputSizeName);
+ for( int j = 0; j < outputSizeName; j++)
+ {
+ cout << "\t\t Name " << j + 1 << " = " << arrayName[j]->name_value <<endl;
+ }
+
+ //Display Description
+ int outputSizeDesc=0;
+ description ** arrayDesc = arrayOutService[i]->description_Ref->get(outputSizeDesc);
+ cout << "\t Description ... " << endl;
+ for( int j = 0; j < outputSizeDesc; j++)
+ {
+ cout << "\t\t Description " << j+1 << " = " << arrayDesc[j]->description_value<< endl;
+ }
+ if( arrayOutService[i]->bindingTemplates_Ref )
+ {
+ cout << "\t\t\t Binding Templates...\n" ;
+ int outputSizeBT=0;
+ bindingTemplate ** arrayOutServiceT = arrayOutService[j]->bindingTemplates_Ref->bindingTemplate_Ref->get(outputSizeBT);
+ for( int k = 0; k < outputSizeBT; k++ )
+ {
+ cout << "\t\t\t\t Access Point " << k + 1 << endl;
+ if( arrayOutServiceT[k]->accessPoint_Ref )
+ {
+ cout << "\t\t\t\t\t Point = " << arrayOutServiceT[k]->accessPoint_Ref->accessPoint_value << endl;
+ cout << "\t\t\t\t\t URL Type = " << arrayOutServiceT[k]->accessPoint_Ref->URLType_Ref << endl;
+ }
+ }
+ }
+
+ if(arrayOutService[i]->categoryBag_Ref){
+ int KRArraySize = 0;
+ keyedReference ** KRArray = arrayOutService[i]->categoryBag_Ref->keyedReference_Ref->get(KRArraySize);
+ cout << "\t\t\t Category Bag Array Size .. " << KRArraySize << endl;
+ for(int k=0;k<KRArraySize;k++){
+ cout << "\t\t\t Category Bag "<< k+1 << endl;
+ cout << "\t\t\t\ttModelKey_Ref = " << KRArray[k]->tModelKey_Ref << endl;
+ cout << "\t\t\t\ttKeyName = " <<KRArray[k]->keyName << endl;
+ cout << "\t\t\t\ttKeyValue = " << KRArray[k]->keyValue << endl;
+ }
+ }
+
+ }
+
+
+ /* Case2:
+ In this we pass 2 serviceKeys and get back two business Services */
+
+ arrayService = new serviceKey[2];
+ for (i = 0; i < 2; i++)
+ {
+ arrayService[i] = new char[100];
+ }
+ strcpy(arrayService[0],buffer);
+ strcpy(arrayService[1],"90757090-956e-4e13-82c0-4e85904ec076");
+ arrServiceKeys.set(arrayService,2);
+ cout << "\n\ninvoking get_serviceDetail ...\n";
+ //Inquire *ws1 = new Inquire(endpoint);
+ businessServices = ws->get_serviceDetail(&arrServiceKeys, cpname);
+ outputSize = 0;
+ arrayOutService = businessServices->get(outputSize);
+ cout << "businessService_Array size = " << outputSize << endl;
+ for( i = 0; i < outputSize; i++ )
+ {
+ cout << "Business Service " << i + 1 <<endl;
+ cout << "\t Business Key Ref = " << arrayOutService[i]->businessKey_Ref << endl;
+ cout << "\t Service Key Ref = " << arrayOutService[i]->serviceKey_Ref<<endl;
+ cout << "\t Names... \n";
+ int outputSizeName = 0;
+ name** arrayName = arrayOutService[i]->name_Ref->get(outputSizeName);
+ for( int j = 0; j < outputSizeName; j++)
+ {
+ cout << "\t\t Name " << j + 1 << " = " << arrayName[j]->name_value << endl;
+ }
+ if( arrayOutService[i]->bindingTemplates_Ref )
+ {
+ cout << "\t\t\t Binding Templates...\n" ;
+ int outputSizeBT=0;
+ bindingTemplate ** arrayOutServiceT = arrayOutService[j]->bindingTemplates_Ref->bindingTemplate_Ref->get(outputSizeBT);
+ for( int k = 0; k < outputSizeBT; k++ )
+ {
+ cout << "\t\t\t\t Access Point " << k + 1;
+ if( arrayOutServiceT[k]->accessPoint_Ref )
+ {
+ cout << "\t\t\t\t\t Point = " << arrayOutServiceT[k]->accessPoint_Ref->accessPoint_value << endl;
+ cout << "\t\t\t\t\t URL Type = " << arrayOutServiceT[k]->accessPoint_Ref->URLType_Ref << endl;
+ }
+ }
+ }
+
+ }
+
+ /* Case 3:
+ In this we pass a non existing Service Key */
+
+
+ arrayService = new serviceKey[2];
+ for (i = 0; i < 1; i++)
+ {
+ arrayService[i] = new char[100];
+ strcpy(arrayService[0],"05e39405-6216-46bd-8f4c-dad67cda4c15");
+ }
+
+
+ arrServiceKeys.set(arrayService,1);
+ //Inquire *ws2 = new Inquire(endpoint);
+ cout << "\n\ninvoking get_serviceDetail ...\n";
+ businessServices = ws->get_serviceDetail(&arrServiceKeys, cpname);
+ outputSize = 0;
+ arrayOutService = businessServices->get(outputSize);
+ cout << "businessService_Array size = " << outputSize << endl;
+ for( i = 0; i < outputSize; i++ )
+ {
+ cout << "Business Entity " << i + 1 << endl;
+ cout << "\t Business Key Ref = " << arrayOutService[i]->businessKey_Ref << endl;
+ cout << "\t Service Key Ref = " << arrayOutService[i]->serviceKey_Ref << endl;
+ cout << "\t Names... \n";
+ int outputSizeName = 0;
+ name** arrayName = arrayOutService[i]->name_Ref->get(outputSizeName);
+ for( int j = 0; j < outputSizeName; j++)
+ {
+ cout << "\t\t Name " << j + 1 << " = " << arrayName[j]->name_value;
+ }
+
+ if( arrayOutService[i]->bindingTemplates_Ref )
+ {
+ cout << "\t\t\t Binding Templates...\n" ;
+ int outputSizeBT=0;
+ bindingTemplate ** arrayOutServiceT = arrayOutService[j]->bindingTemplates_Ref->bindingTemplate_Ref->get(outputSizeBT);
+ for( int k = 0; k < outputSizeBT; k++ )
+ {
+ cout << "\t\t\t\t Access Point " << k + 1 << endl;
+ if( arrayOutServiceT[k]->accessPoint_Ref )
+ {
+ cout << "\t\t\t\t\t Point = " << arrayOutServiceT[k]->accessPoint_Ref->accessPoint_value << endl;
+ cout << "\t\t\t\t\t URL Type = " << arrayOutServiceT[k]->accessPoint_Ref->URLType_Ref << endl;
+ }
+ }
+ }
+ }
+ bSuccess = true;
+ }
+ catch(AxisException& e)
+ {
+ bool bSilent = false;
+
+ if( e.getExceptionCode() == CLIENT_TRANSPORT_OPEN_CONNECTION_FAILED)
+ {
+ if( iRetryIterationCount > 0)
+ {
+ bSilent = true;
+ }
+ }
+ else
+ {
+ iRetryIterationCount = 0;
+ }
+
+ if( !bSilent)
+ {
+ printf("Exception caught : %s\n", e.what());
+ }
+ }
+ iRetryIterationCount--;
+ } while( iRetryIterationCount > 0 && !bSuccess);
+
+ return 0;
+}
Added: webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getTModelDetail_v2Test1Client.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getTModelDetail_v2Test1Client.cpp?rev=358263&view=auto
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getTModelDetail_v2Test1Client.cpp (added)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/getTModelDetail_v2Test1Client.cpp Wed Dec 21 03:01:57 2005
@@ -0,0 +1,263 @@
+/*
+ * Copyright 2003-2004 The Apache Software Foundation.
+// (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+#include <string>
+#include <iostream>
+#include <stdlib.h>
+#include <axis/AxisException.hpp>
+using namespace std;
+
+#include "Inquire.hpp"
+
+#define ARRAYSIZE 1
+
+char endpoint[256];
+
+int
+main(int argc, char *argv[])
+{
+ if( argc < 2 )
+ {
+ printf( "Usage: %s [endpoint] ", argv[0]);
+ exit(0);
+ }
+
+ sprintf(endpoint, argv[1]);
+ char* cpname = "2.0";
+ int outputSize=0;
+ Inquire *ws = new Inquire(endpoint);
+
+ bool bSuccess = false;
+ int iRetryIterationCount = 3;
+
+ do
+ {
+ try
+ {
+ char buffer[100];
+ // Storing Binding Key to Buffer
+ sprintf(buffer, "uuid:2524c425-656e-4eb2-8b13-080cfb081382");
+
+ /* Case1 :
+ In this we pass one tModel key and get back one tModel and then displays the details*/
+ tModelKey_Array arrTModelKeys;
+ tModelKey * arrayTModel = new tModelKey[ARRAYSIZE];
+ int i;
+ for (i = 0; i < ARRAYSIZE; i++)
+ {
+ arrayTModel[i] = new char[100];
+ strcpy(arrayTModel[i],buffer);
+ }
+ arrTModelKeys.set(arrayTModel,ARRAYSIZE);
+ cout << "invoking get_tModelDetail ...\n";
+ tModel_Array* tModels = ws->get_tModelDetail(&arrTModelKeys, cpname);
+ outputSize = 0;
+ tModel ** arrayOutTModel = tModels->get(outputSize);
+ cout << "tModel_Array size = " << outputSize << endl;
+ for( i = 0; i < outputSize; i++ )
+ {
+ cout << "tModel " << i + 1 << endl;
+ cout << "\t tModel Key Ref = " << arrayOutTModel[i]->tModelKey_Ref<<endl;
+ cout << "\t Authorized Name = " << arrayOutTModel[i]->authorizedName << endl;
+ //Display name of tModel
+ cout << "\t Name = " << arrayOutTModel[i]->name_Ref->name_value <<endl;
+
+ //Display Description
+ int outputSizeDesc=0;
+ description ** arrayDesc = arrayOutTModel[i]->description_Ref->get(outputSizeDesc);
+ cout << "\t Description ... " << endl;
+ for( int j = 0; j < outputSizeDesc; j++)
+ {
+ cout << "\t\t Description " << j+1 << " = " << arrayDesc[j]->description_value<< endl;
+ }
+
+ if(arrayOutTModel[i]->overviewDoc_Ref){
+ cout << "\tOverviewDoc ... " << endl;
+ int OVDescSize=0;
+ description ** overviewDesc = arrayOutTModel[i]->overviewDoc_Ref->description_Ref->get(OVDescSize);
+ for(int k=0;k<OVDescSize;k++){
+ cout << "\t\t Description "<< k+1 << overviewDesc[k]->description_value << endl;
+ }
+ cout << "\t\toverviewURL = " << arrayOutTModel[i]->overviewDoc_Ref->overviewURL << endl;
+ }
+
+ if(arrayOutTModel[i]->categoryBag_Ref){
+ int KRArraySize = 0;
+ keyedReference ** KRArray = arrayOutTModel[i]->categoryBag_Ref->keyedReference_Ref->get(KRArraySize);
+ cout << "\t Category Bag Array Size = " << KRArraySize << endl;
+ for(int k=0;k<KRArraySize;k++){
+ cout << "\t\t Category Bag "<< k+1 << endl;
+ cout << "\t\t\ttModelKey_Ref = " << KRArray[k]->tModelKey_Ref << endl;
+ cout << "\t\t\ttKeyName = " <<KRArray[k]->keyName << endl;
+ cout << "\t\t\ttKeyValue = " << KRArray[k]->keyValue << endl;
+ }
+ }
+
+ }
+
+
+ /* Case2:
+ In this we pass 2 tModelKeys and get back two tModels */
+
+ arrayTModel = new tModelKey[2];
+ for (i = 0; i < 2; i++)
+ {
+ arrayTModel[i] = new char[100];
+ }
+ strcpy(arrayTModel[0],buffer);
+ strcpy(arrayTModel[1],"uuid:52ed8652-e2f8-4816-bc71-f48748f471bf");
+ arrTModelKeys.set(arrayTModel,2);
+ cout << "\n\ninvoking get_tModelDetail ...\n";
+ //Inquire *ws1 = new Inquire(endpoint);
+ tModels = ws->get_tModelDetail(&arrTModelKeys, cpname);
+ outputSize = 0;
+ arrayOutTModel = tModels->get(outputSize);
+ cout << "tModel_Array size = " << outputSize << endl;
+ for( i = 0; i < outputSize; i++ )
+ {
+ cout << "tModel " << i + 1 << endl;
+ cout << "\t tModel Key Ref = " << arrayOutTModel[i]->tModelKey_Ref<<endl;
+ cout << "\t Authorized Name = " << arrayOutTModel[i]->authorizedName << endl;
+ //Display name of tModel
+ cout << "\t Name = " << arrayOutTModel[i]->name_Ref->name_value <<endl;
+
+ //Display Description
+ int outputSizeDesc=0;
+ description ** arrayDesc = arrayOutTModel[i]->description_Ref->get(outputSizeDesc);
+ cout << "\t Description ... " << endl;
+ for( int j = 0; j < outputSizeDesc; j++)
+ {
+ cout << "\t\t Description " << j+1 << " = " << arrayDesc[j]->description_value<< endl;
+ }
+
+ if(arrayOutTModel[i]->overviewDoc_Ref){
+ cout << "\tOverviewDoc ... " << endl;
+ int OVDescSize=0;
+ description ** overviewDesc = arrayOutTModel[i]->overviewDoc_Ref->description_Ref->get(OVDescSize);
+ for(int k=0;k<OVDescSize;k++){
+ cout << "\t\t Description "<< k+1 << overviewDesc[k]->description_value << endl;
+ }
+ cout << "\t\toverviewURL = " << arrayOutTModel[i]->overviewDoc_Ref->overviewURL << endl;
+ }
+
+ if(arrayOutTModel[i]->categoryBag_Ref){
+ int KRArraySize = 0;
+ keyedReference ** KRArray = arrayOutTModel[i]->categoryBag_Ref->keyedReference_Ref->get(KRArraySize);
+ cout << "\t Category Bag Array Size .. " << KRArraySize << endl;
+ for(int k=0;k<KRArraySize;k++){
+ cout << "\t Category Bag "<< k+1 << endl;
+ cout << "\t\ttModelKey_Ref = " << KRArray[k]->tModelKey_Ref << endl;
+ cout << "\t\ttKeyName = " <<KRArray[k]->keyName << endl;
+ cout << "\t\ttKeyValue = " << KRArray[k]->keyValue << endl;
+ }
+ }
+ }
+ /* Case 3:
+ In this we pass a non existing tModel Key */
+
+
+ arrayTModel = new tModelKey[1];
+ for (i = 0; i < 1; i++)
+ {
+ arrayTModel[i] = new char[100];
+ strcpy(arrayTModel[0],"05e39405-6216-46bd-8f4c-dad67cda4c15");
+ }
+
+
+ arrTModelKeys.set(arrayTModel,1);
+ //Inquire *ws2 = new Inquire(endpoint);
+ cout << "\n\ninvoking get_tModelDetail ...\n";
+ tModels = ws->get_tModelDetail(&arrTModelKeys, cpname);
+ outputSize = 0;
+ arrayOutTModel = tModels->get(outputSize);
+ cout << "tModel_Array size = " << outputSize << endl;
+ for( i = 0; i < outputSize; i++ )
+ {
+ cout << "tModel " << i + 1 << endl;
+ cout << "\t tModel Key Ref = " << arrayOutTModel[i]->tModelKey_Ref<<endl;
+ cout << "\t Authorized Name = " << arrayOutTModel[i]->authorizedName << endl;
+ //Display name of tModel
+ cout << "\t Name = " << arrayOutTModel[i]->name_Ref->name_value <<endl;
+
+ //Display Description
+ int outputSizeDesc=0;
+ description ** arrayDesc = arrayOutTModel[i]->description_Ref->get(outputSizeDesc);
+ cout << "\t Description ... " << endl;
+ for( int j = 0; j < outputSizeDesc; j++)
+ {
+ cout << "\t\t Description " << j+1 << " = " << arrayDesc[j]->description_value<< endl;
+ }
+
+ if(arrayOutTModel[i]->overviewDoc_Ref){
+ cout << "\tOverviewDoc ... " << endl;
+ int OVDescSize=0;
+ description ** overviewDesc = arrayOutTModel[i]->overviewDoc_Ref->description_Ref->get(OVDescSize);
+ for(int k=0;k<OVDescSize;k++){
+ cout << "\t\t Description "<< k+1 << overviewDesc[k]->description_value << endl;
+ }
+ cout << "\t\toverviewURL = " << arrayOutTModel[i]->overviewDoc_Ref->overviewURL << endl;
+ }
+
+ if(arrayOutTModel[i]->categoryBag_Ref){
+ int KRArraySize = 0;
+ keyedReference ** KRArray = arrayOutTModel[i]->categoryBag_Ref->keyedReference_Ref->get(KRArraySize);
+ cout << "\t Category Bag Array Size .. " << KRArraySize << endl;
+ for(int k=0;k<KRArraySize;k++){
+ cout << "\t Category Bag "<< k+1 << endl;
+ cout << "\t\ttModelKey_Ref = " << KRArray[k]->tModelKey_Ref << endl;
+ cout << "\t\ttKeyName = " <<KRArray[k]->keyName << endl;
+ cout << "\t\ttKeyValue = " << KRArray[k]->keyValue << endl;
+ }
+ }
+
+ }
+ bSuccess = true;
+ }
+ catch(AxisException& e)
+ {
+ bool bSilent = false;
+
+ if( e.getExceptionCode() == CLIENT_TRANSPORT_OPEN_CONNECTION_FAILED)
+ {
+ if( iRetryIterationCount > 0)
+ {
+ bSilent = true;
+ }
+ }
+ else
+ {
+ iRetryIterationCount = 0;
+ }
+
+ if( !bSilent)
+ {
+ printf("Exception caught : %s\n", e.what());
+ }
+ }
+ iRetryIterationCount--;
+ } while( iRetryIterationCount > 0 && !bSuccess);
+
+ return 0;
+}