savon 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/.travis.yml +2 -1
- data/CHANGELOG.md +38 -0
- data/CONTRIBUTING.md +46 -0
- data/Gemfile +1 -1
- data/README.md +30 -18
- data/lib/savon.rb +5 -3
- data/lib/savon/builder.rb +14 -2
- data/lib/savon/client.rb +17 -6
- data/lib/savon/message.rb +2 -0
- data/lib/savon/mock.rb +1 -1
- data/lib/savon/operation.rb +15 -7
- data/lib/savon/options.rb +10 -0
- data/lib/savon/soap_fault.rb +14 -6
- data/lib/savon/version.rb +1 -1
- data/savon.gemspec +5 -5
- data/spec/fixtures/wsdl/betfair.xml +2981 -0
- data/spec/fixtures/wsdl/edialog.xml +15416 -0
- data/spec/fixtures/wsdl/interhome.xml +2137 -0
- data/spec/fixtures/wsdl/team_software.xml +1 -0
- data/spec/fixtures/wsdl/wasmuth.xml +153 -0
- data/spec/integration/email_example_spec.rb +1 -1
- data/spec/integration/ratp_example_spec.rb +3 -1
- data/spec/integration/stockquote_example_spec.rb +1 -1
- data/spec/integration/temperature_example_spec.rb +1 -1
- data/spec/integration/zipcode_example_spec.rb +1 -1
- data/spec/savon/builder_spec.rb +6 -0
- data/spec/savon/client_spec.rb +27 -1
- data/spec/savon/features/message_tag_spec.rb +56 -0
- data/spec/savon/mock_spec.rb +16 -0
- data/spec/savon/model_spec.rb +0 -1
- data/spec/savon/operation_spec.rb +11 -1
- data/spec/savon/options_spec.rb +37 -35
- data/spec/savon/soap_fault_spec.rb +32 -0
- data/spec/spec_helper.rb +8 -7
- data/spec/support/integration.rb +9 -0
- data/spec/support/stdout.rb +25 -0
- metadata +22 -15
- data/.rspec +0 -1
- data/savon.sublime-workspace +0 -494
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><wsdl:definitions name="ServiceManager" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><wsp:Policy wsu:Id="BasicHttpBinding_IWinTeamServiceManager_policy"><wsp:ExactlyOne><wsp:All><sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"><wsp:Policy><sp:TransportToken><wsp:Policy><sp:HttpsToken RequireClientCertificate="false"/></wsp:Policy></sp:TransportToken><sp:AlgorithmSuite><wsp:Policy><sp:Basic256/></wsp:Policy></sp:AlgorithmSuite><sp:Layout><wsp:Policy><sp:Strict/></wsp:Policy></sp:Layout></wsp:Policy></sp:TransportBinding></wsp:All></wsp:ExactlyOne></wsp:Policy><wsdl:types><xsd:schema targetNamespace="http://tempuri.org/Imports"><xsd:import schemaLocation="https://winteamservicestest.myteamsoftware.com/Services.svc?xsd=xsd0" namespace="http://tempuri.org/"/><xsd:import schemaLocation="https://winteamservicestest.myteamsoftware.com/Services.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/"/><xsd:import schemaLocation="https://winteamservicestest.myteamsoftware.com/Services.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/TeamSoftware.WinTeam.Validator"/><xsd:import schemaLocation="https://winteamservicestest.myteamsoftware.com/Services.svc?xsd=xsd3" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/></xsd:schema></wsdl:types><wsdl:message name="IWinTeamServiceManager_Login_InputMessage"><wsdl:part name="parameters" element="tns:Login"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_Login_OutputMessage"><wsdl:part name="parameters" element="tns:LoginResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_SaveEmployee_InputMessage"><wsdl:part name="parameters" element="tns:SaveEmployee"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_SaveEmployee_OutputMessage"><wsdl:part name="parameters" element="tns:SaveEmployeeResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_SavePartialEmployee_InputMessage"><wsdl:part name="parameters" element="tns:SavePartialEmployee"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_SavePartialEmployee_OutputMessage"><wsdl:part name="parameters" element="tns:SavePartialEmployeeResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_GetEmployeeComboListXML_InputMessage"><wsdl:part name="parameters" element="tns:GetEmployeeComboListXML"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_GetEmployeeComboListXML_OutputMessage"><wsdl:part name="parameters" element="tns:GetEmployeeComboListXMLResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_eHubValidEmployee_InputMessage"><wsdl:part name="parameters" element="tns:eHubValidEmployee"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_eHubValidEmployee_OutputMessage"><wsdl:part name="parameters" element="tns:eHubValidEmployeeResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_eHubValidCustomer_InputMessage"><wsdl:part name="parameters" element="tns:eHubValidCustomer"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_eHubValidCustomer_OutputMessage"><wsdl:part name="parameters" element="tns:eHubValidCustomerResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_ValidEmployee_InputMessage"><wsdl:part name="parameters" element="tns:ValidEmployee"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_ValidEmployee_OutputMessage"><wsdl:part name="parameters" element="tns:ValidEmployeeResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_EmployeeProfile_InputMessage"><wsdl:part name="parameters" element="tns:EmployeeProfile"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_EmployeeProfile_OutputMessage"><wsdl:part name="parameters" element="tns:EmployeeProfileResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_EmployeeComplianceCodeImport_InputMessage"><wsdl:part name="parameters" element="tns:EmployeeComplianceCodeImport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_EmployeeComplianceCodeImport_OutputMessage"><wsdl:part name="parameters" element="tns:EmployeeComplianceCodeImportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_EmployeeComplianceCodesCompletedExport_InputMessage"><wsdl:part name="parameters" element="tns:EmployeeComplianceCodesCompletedExport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_EmployeeComplianceCodesCompletedExport_OutputMessage"><wsdl:part name="parameters" element="tns:EmployeeComplianceCodesCompletedExportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_EmployeeComplianceCodesNotCompletedExport_InputMessage"><wsdl:part name="parameters" element="tns:EmployeeComplianceCodesNotCompletedExport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_EmployeeComplianceCodesNotCompletedExport_OutputMessage"><wsdl:part name="parameters" element="tns:EmployeeComplianceCodesNotCompletedExportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_PS_TT_TK_Hours_Import_InputMessage"><wsdl:part name="parameters" element="tns:PS_TT_TK_Hours_Import"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_PS_TT_TK_Hours_Import_OutputMessage"><wsdl:part name="parameters" element="tns:PS_TT_TK_Hours_ImportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_PS_TT_TK_Hours_BatchImport_InputMessage"><wsdl:part name="parameters" element="tns:PS_TT_TK_Hours_BatchImport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_PS_TT_TK_Hours_BatchImport_OutputMessage"><wsdl:part name="parameters" element="tns:PS_TT_TK_Hours_BatchImportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_JobExport_InputMessage"><wsdl:part name="parameters" element="tns:CyCop_JobExport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_JobExport_OutputMessage"><wsdl:part name="parameters" element="tns:CyCop_JobExportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_EmployeeExport_InputMessage"><wsdl:part name="parameters" element="tns:CyCop_EmployeeExport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_EmployeeExport_OutputMessage"><wsdl:part name="parameters" element="tns:CyCop_EmployeeExportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_SingleEmployeeExport_InputMessage"><wsdl:part name="parameters" element="tns:CyCop_SingleEmployeeExport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_SingleEmployeeExport_OutputMessage"><wsdl:part name="parameters" element="tns:CyCop_SingleEmployeeExportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_PostExport_InputMessage"><wsdl:part name="parameters" element="tns:CyCop_PostExport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_PostExport_OutputMessage"><wsdl:part name="parameters" element="tns:CyCop_PostExportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_JobContactExport_InputMessage"><wsdl:part name="parameters" element="tns:CyCop_JobContactExport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_JobContactExport_OutputMessage"><wsdl:part name="parameters" element="tns:CyCop_JobContactExportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_SchedulingExport_InputMessage"><wsdl:part name="parameters" element="tns:CyCop_SchedulingExport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_SchedulingExport_OutputMessage"><wsdl:part name="parameters" element="tns:CyCop_SchedulingExportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_JobHolidayExport_InputMessage"><wsdl:part name="parameters" element="tns:CyCop_JobHolidayExport"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_CyCop_JobHolidayExport_OutputMessage"><wsdl:part name="parameters" element="tns:CyCop_JobHolidayExportResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_GetActiveDirectoryEmployees_InputMessage"><wsdl:part name="parameters" element="tns:GetActiveDirectoryEmployees"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_GetActiveDirectoryEmployees_OutputMessage"><wsdl:part name="parameters" element="tns:GetActiveDirectoryEmployeesResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_UploadNewHireDocuments_InputMessage"><wsdl:part name="parameters" element="tns:UploadNewHireDocuments"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_UploadNewHireDocuments_OutputMessage"><wsdl:part name="parameters" element="tns:UploadNewHireDocumentsResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_LMS_GetActiveEmployees_InputMessage"><wsdl:part name="parameters" element="tns:LMS_GetActiveEmployees"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_LMS_GetActiveEmployees_OutputMessage"><wsdl:part name="parameters" element="tns:LMS_GetActiveEmployeesResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_LMS_ProcessFile_InputMessage"><wsdl:part name="parameters" element="tns:LMS_ProcessFile"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_LMS_ProcessFile_OutputMessage"><wsdl:part name="parameters" element="tns:LMS_ProcessFileResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_UpdateComplianceCode_InputMessage"><wsdl:part name="parameters" element="tns:UpdateComplianceCode"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_UpdateComplianceCode_OutputMessage"><wsdl:part name="parameters" element="tns:UpdateComplianceCodeResponse"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_DeleteComplianceCode_InputMessage"><wsdl:part name="parameters" element="tns:DeleteComplianceCode"/></wsdl:message><wsdl:message name="IWinTeamServiceManager_DeleteComplianceCode_OutputMessage"><wsdl:part name="parameters" element="tns:DeleteComplianceCodeResponse"/></wsdl:message><wsdl:portType name="IWinTeamServiceManager"><wsdl:operation name="Login"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/Login" message="tns:IWinTeamServiceManager_Login_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/LoginResponse" message="tns:IWinTeamServiceManager_Login_OutputMessage"/></wsdl:operation><wsdl:operation name="SaveEmployee"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/SaveEmployee" message="tns:IWinTeamServiceManager_SaveEmployee_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/SaveEmployeeResponse" message="tns:IWinTeamServiceManager_SaveEmployee_OutputMessage"/></wsdl:operation><wsdl:operation name="SavePartialEmployee"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/SavePartialEmployee" message="tns:IWinTeamServiceManager_SavePartialEmployee_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/SavePartialEmployeeResponse" message="tns:IWinTeamServiceManager_SavePartialEmployee_OutputMessage"/></wsdl:operation><wsdl:operation name="GetEmployeeComboListXML"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/GetEmployeeComboListXML" message="tns:IWinTeamServiceManager_GetEmployeeComboListXML_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/GetEmployeeComboListXMLResponse" message="tns:IWinTeamServiceManager_GetEmployeeComboListXML_OutputMessage"/></wsdl:operation><wsdl:operation name="eHubValidEmployee"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/eHubValidEmployee" message="tns:IWinTeamServiceManager_eHubValidEmployee_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/eHubValidEmployeeResponse" message="tns:IWinTeamServiceManager_eHubValidEmployee_OutputMessage"/></wsdl:operation><wsdl:operation name="eHubValidCustomer"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/eHubValidCustomer" message="tns:IWinTeamServiceManager_eHubValidCustomer_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/eHubValidCustomerResponse" message="tns:IWinTeamServiceManager_eHubValidCustomer_OutputMessage"/></wsdl:operation><wsdl:operation name="ValidEmployee"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/ValidEmployee" message="tns:IWinTeamServiceManager_ValidEmployee_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/ValidEmployeeResponse" message="tns:IWinTeamServiceManager_ValidEmployee_OutputMessage"/></wsdl:operation><wsdl:operation name="EmployeeProfile"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/EmployeeProfile" message="tns:IWinTeamServiceManager_EmployeeProfile_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/EmployeeProfileResponse" message="tns:IWinTeamServiceManager_EmployeeProfile_OutputMessage"/></wsdl:operation><wsdl:operation name="EmployeeComplianceCodeImport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/EmployeeComplianceCodeImport" message="tns:IWinTeamServiceManager_EmployeeComplianceCodeImport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/EmployeeComplianceCodeImportResponse" message="tns:IWinTeamServiceManager_EmployeeComplianceCodeImport_OutputMessage"/></wsdl:operation><wsdl:operation name="EmployeeComplianceCodesCompletedExport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/EmployeeComplianceCodesCompletedExport" message="tns:IWinTeamServiceManager_EmployeeComplianceCodesCompletedExport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/EmployeeComplianceCodesCompletedExportResponse" message="tns:IWinTeamServiceManager_EmployeeComplianceCodesCompletedExport_OutputMessage"/></wsdl:operation><wsdl:operation name="EmployeeComplianceCodesNotCompletedExport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/EmployeeComplianceCodesNotCompletedExport" message="tns:IWinTeamServiceManager_EmployeeComplianceCodesNotCompletedExport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/EmployeeComplianceCodesNotCompletedExportResponse" message="tns:IWinTeamServiceManager_EmployeeComplianceCodesNotCompletedExport_OutputMessage"/></wsdl:operation><wsdl:operation name="PS_TT_TK_Hours_Import"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/PS_TT_TK_Hours_Import" message="tns:IWinTeamServiceManager_PS_TT_TK_Hours_Import_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/PS_TT_TK_Hours_ImportResponse" message="tns:IWinTeamServiceManager_PS_TT_TK_Hours_Import_OutputMessage"/></wsdl:operation><wsdl:operation name="PS_TT_TK_Hours_BatchImport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/PS_TT_TK_Hours_BatchImport" message="tns:IWinTeamServiceManager_PS_TT_TK_Hours_BatchImport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/PS_TT_TK_Hours_BatchImportResponse" message="tns:IWinTeamServiceManager_PS_TT_TK_Hours_BatchImport_OutputMessage"/></wsdl:operation><wsdl:operation name="CyCop_JobExport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_JobExport" message="tns:IWinTeamServiceManager_CyCop_JobExport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_JobExportResponse" message="tns:IWinTeamServiceManager_CyCop_JobExport_OutputMessage"/></wsdl:operation><wsdl:operation name="CyCop_EmployeeExport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_EmployeeExport" message="tns:IWinTeamServiceManager_CyCop_EmployeeExport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_EmployeeExportResponse" message="tns:IWinTeamServiceManager_CyCop_EmployeeExport_OutputMessage"/></wsdl:operation><wsdl:operation name="CyCop_SingleEmployeeExport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_SingleEmployeeExport" message="tns:IWinTeamServiceManager_CyCop_SingleEmployeeExport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_SingleEmployeeExportResponse" message="tns:IWinTeamServiceManager_CyCop_SingleEmployeeExport_OutputMessage"/></wsdl:operation><wsdl:operation name="CyCop_PostExport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_PostExport" message="tns:IWinTeamServiceManager_CyCop_PostExport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_PostExportResponse" message="tns:IWinTeamServiceManager_CyCop_PostExport_OutputMessage"/></wsdl:operation><wsdl:operation name="CyCop_JobContactExport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_JobContactExport" message="tns:IWinTeamServiceManager_CyCop_JobContactExport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_JobContactExportResponse" message="tns:IWinTeamServiceManager_CyCop_JobContactExport_OutputMessage"/></wsdl:operation><wsdl:operation name="CyCop_SchedulingExport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_SchedulingExport" message="tns:IWinTeamServiceManager_CyCop_SchedulingExport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_SchedulingExportResponse" message="tns:IWinTeamServiceManager_CyCop_SchedulingExport_OutputMessage"/></wsdl:operation><wsdl:operation name="CyCop_JobHolidayExport"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_JobHolidayExport" message="tns:IWinTeamServiceManager_CyCop_JobHolidayExport_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/CyCop_JobHolidayExportResponse" message="tns:IWinTeamServiceManager_CyCop_JobHolidayExport_OutputMessage"/></wsdl:operation><wsdl:operation name="GetActiveDirectoryEmployees"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/GetActiveDirectoryEmployees" message="tns:IWinTeamServiceManager_GetActiveDirectoryEmployees_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/GetActiveDirectoryEmployeesResponse" message="tns:IWinTeamServiceManager_GetActiveDirectoryEmployees_OutputMessage"/></wsdl:operation><wsdl:operation name="UploadNewHireDocuments"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/UploadNewHireDocuments" message="tns:IWinTeamServiceManager_UploadNewHireDocuments_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/UploadNewHireDocumentsResponse" message="tns:IWinTeamServiceManager_UploadNewHireDocuments_OutputMessage"/></wsdl:operation><wsdl:operation name="LMS_GetActiveEmployees"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/LMS_GetActiveEmployees" message="tns:IWinTeamServiceManager_LMS_GetActiveEmployees_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/LMS_GetActiveEmployeesResponse" message="tns:IWinTeamServiceManager_LMS_GetActiveEmployees_OutputMessage"/></wsdl:operation><wsdl:operation name="LMS_ProcessFile"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/LMS_ProcessFile" message="tns:IWinTeamServiceManager_LMS_ProcessFile_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/LMS_ProcessFileResponse" message="tns:IWinTeamServiceManager_LMS_ProcessFile_OutputMessage"/></wsdl:operation><wsdl:operation name="UpdateComplianceCode"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/UpdateComplianceCode" message="tns:IWinTeamServiceManager_UpdateComplianceCode_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/UpdateComplianceCodeResponse" message="tns:IWinTeamServiceManager_UpdateComplianceCode_OutputMessage"/></wsdl:operation><wsdl:operation name="DeleteComplianceCode"><wsdl:input wsaw:Action="http://tempuri.org/IWinTeamServiceManager/DeleteComplianceCode" message="tns:IWinTeamServiceManager_DeleteComplianceCode_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IWinTeamServiceManager/DeleteComplianceCodeResponse" message="tns:IWinTeamServiceManager_DeleteComplianceCode_OutputMessage"/></wsdl:operation></wsdl:portType><wsdl:binding name="BasicHttpBinding_IWinTeamServiceManager" type="tns:IWinTeamServiceManager"><wsp:PolicyReference URI="#BasicHttpBinding_IWinTeamServiceManager_policy"/><soap:binding transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="Login"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/Login" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="SaveEmployee"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/SaveEmployee" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="SavePartialEmployee"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/SavePartialEmployee" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="GetEmployeeComboListXML"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/GetEmployeeComboListXML" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="eHubValidEmployee"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/eHubValidEmployee" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="eHubValidCustomer"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/eHubValidCustomer" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="ValidEmployee"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/ValidEmployee" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="EmployeeProfile"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/EmployeeProfile" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="EmployeeComplianceCodeImport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/EmployeeComplianceCodeImport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="EmployeeComplianceCodesCompletedExport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/EmployeeComplianceCodesCompletedExport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="EmployeeComplianceCodesNotCompletedExport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/EmployeeComplianceCodesNotCompletedExport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="PS_TT_TK_Hours_Import"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/PS_TT_TK_Hours_Import" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="PS_TT_TK_Hours_BatchImport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/PS_TT_TK_Hours_BatchImport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="CyCop_JobExport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/CyCop_JobExport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="CyCop_EmployeeExport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/CyCop_EmployeeExport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="CyCop_SingleEmployeeExport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/CyCop_SingleEmployeeExport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="CyCop_PostExport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/CyCop_PostExport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="CyCop_JobContactExport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/CyCop_JobContactExport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="CyCop_SchedulingExport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/CyCop_SchedulingExport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="CyCop_JobHolidayExport"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/CyCop_JobHolidayExport" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="GetActiveDirectoryEmployees"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/GetActiveDirectoryEmployees" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="UploadNewHireDocuments"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/UploadNewHireDocuments" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="LMS_GetActiveEmployees"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/LMS_GetActiveEmployees" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="LMS_ProcessFile"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/LMS_ProcessFile" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="UpdateComplianceCode"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/UpdateComplianceCode" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="DeleteComplianceCode"><soap:operation soapAction="http://tempuri.org/IWinTeamServiceManager/DeleteComplianceCode" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="ServiceManager"><wsdl:port name="BasicHttpBinding_IWinTeamServiceManager" binding="tns:BasicHttpBinding_IWinTeamServiceManager"><soap:address location="https://winteamservicestest.myteamsoftware.com/Services.svc"/></wsdl:port></wsdl:service></wsdl:definitions>
|
@@ -0,0 +1,153 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-b01-. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-b01-. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.online.msw/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws.online.msw/" name="OnlineSyncService">
|
2
|
+
<types>
|
3
|
+
<xsd:schema>
|
4
|
+
<xsd:import namespace="http://ws.online.msw/" schemaLocation="http://www3.mediaservice-wasmuth.de:80/online-ws-2.0/OnlineSync?xsd=1" />
|
5
|
+
</xsd:schema>
|
6
|
+
<xsd:schema>
|
7
|
+
<xsd:import namespace="customers.model.online.msw" schemaLocation="http://www3.mediaservice-wasmuth.de:80/online-ws-2.0/OnlineSync?xsd=2" />
|
8
|
+
</xsd:schema>
|
9
|
+
</types>
|
10
|
+
<message name="getStTables">
|
11
|
+
<part name="parameters" element="tns:getStTables" />
|
12
|
+
</message>
|
13
|
+
<message name="getStTablesResponse">
|
14
|
+
<part name="parameters" element="tns:getStTablesResponse" />
|
15
|
+
</message>
|
16
|
+
<message name="getDbManager">
|
17
|
+
<part name="parameters" element="tns:getDbManager" />
|
18
|
+
</message>
|
19
|
+
<message name="getDbManagerResponse">
|
20
|
+
<part name="parameters" element="tns:getDbManagerResponse" />
|
21
|
+
</message>
|
22
|
+
<message name="getVermarkterData">
|
23
|
+
<part name="parameters" element="tns:getVermarkterData" />
|
24
|
+
</message>
|
25
|
+
<message name="getVermarkterDataResponse">
|
26
|
+
<part name="parameters" element="tns:getVermarkterDataResponse" />
|
27
|
+
</message>
|
28
|
+
<message name="getBelegungseinheitData">
|
29
|
+
<part name="parameters" element="tns:getBelegungseinheitData" />
|
30
|
+
</message>
|
31
|
+
<message name="getBelegungseinheitDataResponse">
|
32
|
+
<part name="parameters" element="tns:getBelegungseinheitDataResponse" />
|
33
|
+
</message>
|
34
|
+
<message name="getOnlineResponseData">
|
35
|
+
<part name="parameters" element="tns:getOnlineResponseData" />
|
36
|
+
</message>
|
37
|
+
<message name="getOnlineResponseDataResponse">
|
38
|
+
<part name="parameters" element="tns:getOnlineResponseDataResponse" />
|
39
|
+
</message>
|
40
|
+
<message name="getVermarkterList">
|
41
|
+
<part name="parameters" element="tns:getVermarkterList" />
|
42
|
+
</message>
|
43
|
+
<message name="getVermarkterListResponse">
|
44
|
+
<part name="parameters" element="tns:getVermarkterListResponse" />
|
45
|
+
</message>
|
46
|
+
<message name="getBelegungseinheitList">
|
47
|
+
<part name="parameters" element="tns:getBelegungseinheitList" />
|
48
|
+
</message>
|
49
|
+
<message name="getBelegungseinheitListResponse">
|
50
|
+
<part name="parameters" element="tns:getBelegungseinheitListResponse" />
|
51
|
+
</message>
|
52
|
+
<portType name="OnlineSync">
|
53
|
+
<operation name="getStTables">
|
54
|
+
<input wsam:Action="http://ws.online.msw/OnlineSync/getStTablesRequest" message="tns:getStTables" />
|
55
|
+
<output wsam:Action="http://ws.online.msw/OnlineSync/getStTablesResponse" message="tns:getStTablesResponse" />
|
56
|
+
</operation>
|
57
|
+
<operation name="getDbManager">
|
58
|
+
<input wsam:Action="http://ws.online.msw/OnlineSync/getDbManagerRequest" message="tns:getDbManager" />
|
59
|
+
<output wsam:Action="http://ws.online.msw/OnlineSync/getDbManagerResponse" message="tns:getDbManagerResponse" />
|
60
|
+
</operation>
|
61
|
+
<operation name="getVermarkterData">
|
62
|
+
<input wsam:Action="http://ws.online.msw/OnlineSync/getVermarkterDataRequest" message="tns:getVermarkterData" />
|
63
|
+
<output wsam:Action="http://ws.online.msw/OnlineSync/getVermarkterDataResponse" message="tns:getVermarkterDataResponse" />
|
64
|
+
</operation>
|
65
|
+
<operation name="getBelegungseinheitData">
|
66
|
+
<input wsam:Action="http://ws.online.msw/OnlineSync/getBelegungseinheitDataRequest" message="tns:getBelegungseinheitData" />
|
67
|
+
<output wsam:Action="http://ws.online.msw/OnlineSync/getBelegungseinheitDataResponse" message="tns:getBelegungseinheitDataResponse" />
|
68
|
+
</operation>
|
69
|
+
<operation name="getOnlineResponseData">
|
70
|
+
<input wsam:Action="http://ws.online.msw/OnlineSync/getOnlineResponseDataRequest" message="tns:getOnlineResponseData" />
|
71
|
+
<output wsam:Action="http://ws.online.msw/OnlineSync/getOnlineResponseDataResponse" message="tns:getOnlineResponseDataResponse" />
|
72
|
+
</operation>
|
73
|
+
<operation name="getVermarkterList">
|
74
|
+
<input wsam:Action="http://ws.online.msw/OnlineSync/getVermarkterListRequest" message="tns:getVermarkterList" />
|
75
|
+
<output wsam:Action="http://ws.online.msw/OnlineSync/getVermarkterListResponse" message="tns:getVermarkterListResponse" />
|
76
|
+
</operation>
|
77
|
+
<operation name="getBelegungseinheitList">
|
78
|
+
<input wsam:Action="http://ws.online.msw/OnlineSync/getBelegungseinheitListRequest" message="tns:getBelegungseinheitList" />
|
79
|
+
<output wsam:Action="http://ws.online.msw/OnlineSync/getBelegungseinheitListResponse" message="tns:getBelegungseinheitListResponse" />
|
80
|
+
</operation>
|
81
|
+
</portType>
|
82
|
+
<binding name="OnlineSyncPortBinding" type="tns:OnlineSync">
|
83
|
+
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
|
84
|
+
<operation name="getStTables">
|
85
|
+
<soap:operation soapAction="" />
|
86
|
+
<input>
|
87
|
+
<soap:body use="literal" />
|
88
|
+
</input>
|
89
|
+
<output>
|
90
|
+
<soap:body use="literal" />
|
91
|
+
</output>
|
92
|
+
</operation>
|
93
|
+
<operation name="getDbManager">
|
94
|
+
<soap:operation soapAction="" />
|
95
|
+
<input>
|
96
|
+
<soap:body use="literal" />
|
97
|
+
</input>
|
98
|
+
<output>
|
99
|
+
<soap:body use="literal" />
|
100
|
+
</output>
|
101
|
+
</operation>
|
102
|
+
<operation name="getVermarkterData">
|
103
|
+
<soap:operation soapAction="" />
|
104
|
+
<input>
|
105
|
+
<soap:body use="literal" />
|
106
|
+
</input>
|
107
|
+
<output>
|
108
|
+
<soap:body use="literal" />
|
109
|
+
</output>
|
110
|
+
</operation>
|
111
|
+
<operation name="getBelegungseinheitData">
|
112
|
+
<soap:operation soapAction="" />
|
113
|
+
<input>
|
114
|
+
<soap:body use="literal" />
|
115
|
+
</input>
|
116
|
+
<output>
|
117
|
+
<soap:body use="literal" />
|
118
|
+
</output>
|
119
|
+
</operation>
|
120
|
+
<operation name="getOnlineResponseData">
|
121
|
+
<soap:operation soapAction="" />
|
122
|
+
<input>
|
123
|
+
<soap:body use="literal" />
|
124
|
+
</input>
|
125
|
+
<output>
|
126
|
+
<soap:body use="literal" />
|
127
|
+
</output>
|
128
|
+
</operation>
|
129
|
+
<operation name="getVermarkterList">
|
130
|
+
<soap:operation soapAction="" />
|
131
|
+
<input>
|
132
|
+
<soap:body use="literal" />
|
133
|
+
</input>
|
134
|
+
<output>
|
135
|
+
<soap:body use="literal" />
|
136
|
+
</output>
|
137
|
+
</operation>
|
138
|
+
<operation name="getBelegungseinheitList">
|
139
|
+
<soap:operation soapAction="" />
|
140
|
+
<input>
|
141
|
+
<soap:body use="literal" />
|
142
|
+
</input>
|
143
|
+
<output>
|
144
|
+
<soap:body use="literal" />
|
145
|
+
</output>
|
146
|
+
</operation>
|
147
|
+
</binding>
|
148
|
+
<service name="OnlineSyncService">
|
149
|
+
<port name="OnlineSyncPort" binding="tns:OnlineSyncPortBinding">
|
150
|
+
<soap:address location="http://www3.mediaservice-wasmuth.de:80/online-ws-2.0/OnlineSync" />
|
151
|
+
</port>
|
152
|
+
</service>
|
153
|
+
</definitions>
|
@@ -15,7 +15,7 @@ describe "Email example" do
|
|
15
15
|
:log => false
|
16
16
|
)
|
17
17
|
|
18
|
-
response = client
|
18
|
+
response = call_and_fail_gracefully(client, :verify_email, :message => { :email => "soap@example.com", "LicenseKey" => "?" })
|
19
19
|
|
20
20
|
response_text = response.body[:verify_email_response][:verify_email_result][:response_text]
|
21
21
|
|
@@ -15,7 +15,9 @@ describe "RATP example" do
|
|
15
15
|
log false
|
16
16
|
end
|
17
17
|
|
18
|
-
|
18
|
+
# XXX: the service seems to rely on the order of arguments.
|
19
|
+
# try to fix this with the new wsdl parser.
|
20
|
+
response = call_and_fail_gracefully(client, :get_stations) do
|
19
21
|
message(:station => { :id => 1975 }, :limit => 1)
|
20
22
|
end
|
21
23
|
|
@@ -15,7 +15,7 @@ describe "Stockquote example" do
|
|
15
15
|
:log => false
|
16
16
|
)
|
17
17
|
|
18
|
-
response = client
|
18
|
+
response = call_and_fail_gracefully(client, :get_quote, :message => { :symbol => "AAPL" })
|
19
19
|
|
20
20
|
cdata = response.body[:get_quote_response][:get_quote_result]
|
21
21
|
|
@@ -21,7 +21,7 @@ describe "Temperature example" do
|
|
21
21
|
log false
|
22
22
|
end
|
23
23
|
|
24
|
-
response = client
|
24
|
+
response = call_and_fail_gracefully(client, :convert_temp) do
|
25
25
|
# For the corrent values to pass for :from_unit and :to_unit, I searched the WSDL for
|
26
26
|
# the "FromUnit" type which is a "TemperatureUnit" enumeration that looks like this:
|
27
27
|
#
|
@@ -22,7 +22,7 @@ describe "ZIP code example" do
|
|
22
22
|
|
23
23
|
threads = request_data.map do |blz|
|
24
24
|
thread = Thread.new do
|
25
|
-
response = client
|
25
|
+
response = call_and_fail_gracefully client, :get_bank, :message => { :blz => blz }
|
26
26
|
Thread.current[:value] = response.body[:get_bank_response][:details]
|
27
27
|
mutex.synchronize { threads_waiting -= 1 }
|
28
28
|
end
|
data/spec/savon/builder_spec.rb
CHANGED
@@ -9,6 +9,12 @@ describe Savon::Builder do
|
|
9
9
|
let(:wsdl) { Wasabi::Document.new Fixture.wsdl(:authentication) }
|
10
10
|
let(:no_wsdl) { Wasabi::Document.new }
|
11
11
|
|
12
|
+
describe "#pretty" do
|
13
|
+
it "returns the pretty printed request" do
|
14
|
+
expect(builder.pretty).to include("<env:Body>\n <tns:authenticate/>")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
12
18
|
describe "#to_s" do
|
13
19
|
it "includes the global :env_namespace if it's available" do
|
14
20
|
globals[:env_namespace] = :soapenv
|
data/spec/savon/client_spec.rb
CHANGED
@@ -46,6 +46,16 @@ describe Savon::Client do
|
|
46
46
|
expect { Savon.client(:endpoint => "http://example.com") }.
|
47
47
|
to raise_error(Savon::InitializationError, /Expected either a WSDL document or the SOAP endpoint and target namespace options/)
|
48
48
|
end
|
49
|
+
|
50
|
+
it "raises a when given an unknown option via the Hash syntax" do
|
51
|
+
expect { Savon.client(:invalid_global_option => true) }.
|
52
|
+
to raise_error(Savon::UnknownOptionError, "Unknown global option: :invalid_global_option")
|
53
|
+
end
|
54
|
+
|
55
|
+
it "raises a when given an unknown option via the block syntax" do
|
56
|
+
expect { Savon.client { another_invalid_global_option true } }.
|
57
|
+
to raise_error(Savon::UnknownOptionError, "Unknown global option: :another_invalid_global_option")
|
58
|
+
end
|
49
59
|
end
|
50
60
|
|
51
61
|
describe "#globals" do
|
@@ -54,6 +64,12 @@ describe Savon::Client do
|
|
54
64
|
end
|
55
65
|
end
|
56
66
|
|
67
|
+
describe "#service_name" do
|
68
|
+
it "returns the name of the service" do
|
69
|
+
expect(new_client.service_name).to eq('AuthenticationWebServiceImplService')
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
57
73
|
describe "#operations" do
|
58
74
|
it "returns all operation names" do
|
59
75
|
operations = new_client.operations
|
@@ -73,7 +89,7 @@ describe Savon::Client do
|
|
73
89
|
|
74
90
|
it "raises if there's no such SOAP operation" do
|
75
91
|
expect { new_client.operation(:does_not_exist) }.
|
76
|
-
to raise_error(
|
92
|
+
to raise_error(Savon::UnknownOperationError)
|
77
93
|
end
|
78
94
|
|
79
95
|
it "does not raise when there is no WSDL document" do
|
@@ -137,6 +153,16 @@ describe Savon::Client do
|
|
137
153
|
"Actual: \"not a symbol\" (String)"
|
138
154
|
)
|
139
155
|
end
|
156
|
+
|
157
|
+
it "raises a when given an unknown option via the Hash syntax" do
|
158
|
+
expect { new_client.call(:authenticate, :invalid_local_option => true) }.
|
159
|
+
to raise_error(Savon::UnknownOptionError, "Unknown local option: :invalid_local_option")
|
160
|
+
end
|
161
|
+
|
162
|
+
it "raises a when given an unknown option via the block syntax" do
|
163
|
+
expect { new_client.call(:authenticate) { another_invalid_local_option true } }.
|
164
|
+
to raise_error(Savon::UnknownOptionError, "Unknown local option: :another_invalid_local_option")
|
165
|
+
end
|
140
166
|
end
|
141
167
|
|
142
168
|
def new_http_response(options = {})
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Savon do
|
4
|
+
|
5
|
+
it 'knows the message tag for :authentication' do
|
6
|
+
message_tag = message_tag_for(:authentication, :authenticate)
|
7
|
+
expect(message_tag).to eq(['http://v1_0.ws.auth.order.example.com/', 'authenticate'])
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'knows the message tag for :taxcloud' do
|
11
|
+
message_tag = message_tag_for(:taxcloud, :verify_address)
|
12
|
+
expect(message_tag).to eq(['http://taxcloud.net', 'VerifyAddress'])
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'knows the message tag for :team_software' do
|
16
|
+
message_tag = message_tag_for(:team_software, :login)
|
17
|
+
expect(message_tag).to eq(['http://tempuri.org/', 'Login'])
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'knows the message tag for :interhome' do
|
21
|
+
message_tag = message_tag_for(:interhome, :price_list)
|
22
|
+
expect(message_tag).to eq(['http://www.interhome.com/webservice', 'PriceList'])
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'knows the message tag for :betfair' do
|
26
|
+
message_tag = message_tag_for(:betfair, :get_bet)
|
27
|
+
expect(message_tag).to eq(['http://www.betfair.com/publicapi/v5/BFExchangeService/', 'getBet'])
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'knows the message tag for :wasmuth' do
|
31
|
+
message_tag = message_tag_for(:wasmuth, :get_st_tables)
|
32
|
+
expect(message_tag).to eq(['http://ws.online.msw/', 'getStTables'])
|
33
|
+
end
|
34
|
+
|
35
|
+
def message_tag_for(fixture, operation_name)
|
36
|
+
globals = Savon::GlobalOptions.new(:log => false)
|
37
|
+
wsdl = Wasabi::Document.new Fixture.wsdl(fixture)
|
38
|
+
operation = Savon::Operation.create(operation_name, wsdl, globals)
|
39
|
+
request_xml = operation.build.to_s
|
40
|
+
|
41
|
+
nsid, local = extract_message_tag_from_request(request_xml)
|
42
|
+
namespace = extract_namespace_from_request(nsid, request_xml)
|
43
|
+
|
44
|
+
[namespace, local]
|
45
|
+
end
|
46
|
+
|
47
|
+
def extract_message_tag_from_request(xml)
|
48
|
+
match = xml.match(/<\w+?:Body><(.+?):(.+?)>/)
|
49
|
+
[ match[1], match[2] ]
|
50
|
+
end
|
51
|
+
|
52
|
+
def extract_namespace_from_request(nsid, xml)
|
53
|
+
xml.match(/xmlns:#{nsid}="(.+?)"/)[1]
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
data/spec/savon/mock_spec.rb
CHANGED
@@ -114,6 +114,22 @@ describe "Savon's mock interface" do
|
|
114
114
|
" with this message: #{message.inspect}")
|
115
115
|
end
|
116
116
|
|
117
|
+
it "allows code to rescue Savon::Error and still report test failures" do
|
118
|
+
message = { :username => "luke" }
|
119
|
+
savon.expects(:find_user).with(:message => message).returns("<fixture/>")
|
120
|
+
|
121
|
+
expect {
|
122
|
+
begin
|
123
|
+
new_client.call(:find_user)
|
124
|
+
rescue Savon::Error => e
|
125
|
+
puts "any real error (e.g. SOAP fault or HTTP error) is OK in the big picture, move on"
|
126
|
+
end
|
127
|
+
}.to raise_error(Savon::ExpectationError, "Expected a request to the :find_user operation\n" \
|
128
|
+
" with this message: #{message.inspect}\n" \
|
129
|
+
"Received a request to the :find_user operation\n" \
|
130
|
+
" with no message.")
|
131
|
+
end
|
132
|
+
|
117
133
|
def new_client(globals = {})
|
118
134
|
defaults = {
|
119
135
|
:endpoint => "http://example.com",
|
data/spec/savon/model_spec.rb
CHANGED
@@ -42,7 +42,7 @@ describe Savon::Operation do
|
|
42
42
|
|
43
43
|
it "raises if the operation is not available for the service" do
|
44
44
|
expect { new_operation(:no_such_operation, wsdl, globals) }.
|
45
|
-
to raise_error(
|
45
|
+
to raise_error(Savon::UnknownOperationError, /Unable to find SOAP operation: :no_such_operation/)
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
@@ -53,6 +53,16 @@ describe Savon::Operation do
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
+
describe "#build" do
|
57
|
+
it "returns the Builder" do
|
58
|
+
operation = new_operation(:verify_address, wsdl, globals)
|
59
|
+
builder = operation.build(:message => { :test => 'message' })
|
60
|
+
|
61
|
+
expect(builder).to be_a(Savon::Builder)
|
62
|
+
expect(builder.to_s).to include('<tns:VerifyAddress><tns:test>message</tns:test></tns:VerifyAddress>')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
56
66
|
describe "#call" do
|
57
67
|
it "returns a response object" do
|
58
68
|
operation = new_operation(:verify_address, wsdl, globals)
|
data/spec/savon/options_spec.rb
CHANGED
@@ -35,6 +35,14 @@ describe "Options" do
|
|
35
35
|
expect(response.http.body).to include('xmlns:lol="http://v1_0.ws.auth.order.example.com/"')
|
36
36
|
expect(response.http.body).to include("<lol:authenticate></lol:authenticate>")
|
37
37
|
end
|
38
|
+
|
39
|
+
it "ignores namespace identifier if it is nil" do
|
40
|
+
client = new_client(:endpoint => @server.url(:repeat), :namespace_identifier => nil)
|
41
|
+
response = client.call(:authenticate, :message => {:user => 'foo'})
|
42
|
+
|
43
|
+
expect(response.http.body).to include('xmlns="http://v1_0.ws.auth.order.example.com/"')
|
44
|
+
expect(response.http.body).to include("<authenticate><user>foo</user></authenticate>")
|
45
|
+
end
|
38
46
|
end
|
39
47
|
|
40
48
|
context "global :namespaces" do
|
@@ -73,7 +81,7 @@ describe "Options" do
|
|
73
81
|
context "global :open_timeout" do
|
74
82
|
it "makes the client timeout after n seconds" do
|
75
83
|
non_routable_ip = "http://10.255.255.1"
|
76
|
-
client = new_client(:endpoint => non_routable_ip, :open_timeout => 1)
|
84
|
+
client = new_client(:endpoint => non_routable_ip, :open_timeout => 0.1)
|
77
85
|
|
78
86
|
expect { client.call(:authenticate) }.to raise_error { |error|
|
79
87
|
if error.kind_of? Errno::EHOSTUNREACH
|
@@ -90,7 +98,7 @@ describe "Options" do
|
|
90
98
|
|
91
99
|
context "global :read_timeout" do
|
92
100
|
it "makes the client timeout after n seconds" do
|
93
|
-
client = new_client(:endpoint => @server.url(:timeout), :open_timeout => 1, :read_timeout => 1)
|
101
|
+
client = new_client(:endpoint => @server.url(:timeout), :open_timeout => 0.1, :read_timeout => 0.1)
|
94
102
|
|
95
103
|
expect { client.call(:authenticate) }.
|
96
104
|
to raise_error(HTTPClient::ReceiveTimeoutError)
|
@@ -226,10 +234,10 @@ describe "Options" do
|
|
226
234
|
end
|
227
235
|
|
228
236
|
it "instructs Savon to log SOAP requests and responses" do
|
229
|
-
stdout = mock_stdout
|
237
|
+
stdout = mock_stdout do
|
230
238
|
client = new_client(:endpoint => @server.url, :log => true)
|
231
239
|
client.call(:authenticate)
|
232
|
-
|
240
|
+
end
|
233
241
|
|
234
242
|
expect(stdout.string).to include("INFO -- : SOAP request")
|
235
243
|
end
|
@@ -238,16 +246,6 @@ describe "Options" do
|
|
238
246
|
HTTPI.expects(:log=).with(true)
|
239
247
|
new_client(:log => true)
|
240
248
|
end
|
241
|
-
|
242
|
-
def mock_stdout
|
243
|
-
stdout = StringIO.new
|
244
|
-
$stdout = stdout
|
245
|
-
|
246
|
-
yield
|
247
|
-
|
248
|
-
$stdout = STDOUT
|
249
|
-
stdout
|
250
|
-
end
|
251
249
|
end
|
252
250
|
|
253
251
|
context "global :logger" do
|
@@ -389,40 +387,44 @@ describe "Options" do
|
|
389
387
|
|
390
388
|
context "global :filters" do
|
391
389
|
it "filters a list of XML tags from logged SOAP messages" do
|
392
|
-
|
390
|
+
silence_stdout do
|
391
|
+
client = new_client(:endpoint => @server.url(:repeat), :log => true)
|
393
392
|
|
394
|
-
|
393
|
+
client.globals[:filters] << :password
|
395
394
|
|
396
|
-
|
397
|
-
|
395
|
+
# filter out logs we're not interested in
|
396
|
+
client.globals[:logger].expects(:info).at_least_once
|
398
397
|
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
398
|
+
# check whether the password is filtered
|
399
|
+
client.globals[:logger].expects(:debug).with { |message|
|
400
|
+
message.include? "<password>***FILTERED***</password>"
|
401
|
+
}.twice
|
403
402
|
|
404
|
-
|
405
|
-
|
403
|
+
message = { :username => "luke", :password => "secret" }
|
404
|
+
client.call(:authenticate, :message => message)
|
405
|
+
end
|
406
406
|
end
|
407
407
|
end
|
408
408
|
|
409
409
|
context "global :pretty_print_xml" do
|
410
410
|
it "is a nice but expensive way to debug XML messages" do
|
411
|
-
|
411
|
+
silence_stdout do
|
412
|
+
client = new_client(:endpoint => @server.url(:repeat), :pretty_print_xml => true, :log => true)
|
412
413
|
|
413
|
-
|
414
|
-
|
414
|
+
# filter out logs we're not interested in
|
415
|
+
client.globals[:logger].expects(:info).at_least_once
|
415
416
|
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
417
|
+
# check whether the message is pretty printed
|
418
|
+
client.globals[:logger].expects(:debug).with { |message|
|
419
|
+
envelope = message =~ /\n<env:Envelope/
|
420
|
+
body = message =~ /\n <env:Body>/
|
421
|
+
message_tag = message =~ /\n <tns:authenticate\/>/
|
421
422
|
|
422
|
-
|
423
|
-
|
423
|
+
envelope && body && message_tag
|
424
|
+
}.twice
|
424
425
|
|
425
|
-
|
426
|
+
client.call(:authenticate)
|
427
|
+
end
|
426
428
|
end
|
427
429
|
end
|
428
430
|
|