savon 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|