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.
@@ -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.call(:verify_email, :message => { :email => "soap@example.com", "LicenseKey" => "?" })
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
- response = client.call(:get_stations) do
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.call(:get_quote, :message => { :symbol => "AAPL" })
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.call(:convert_temp) do
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.call :get_bank, :message => { :blz => blz }
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
@@ -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
@@ -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(ArgumentError)
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
@@ -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",
@@ -49,7 +49,6 @@ describe Savon::Model do
49
49
  end
50
50
 
51
51
  describe ".operations" do
52
- subject(:model)
53
52
  it "defines class methods for each operation" do
54
53
  model = Class.new {
55
54
  extend Savon::Model
@@ -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(ArgumentError, /Unable to find SOAP operation: :no_such_operation/)
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)
@@ -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
- client = new_client(:endpoint => @server.url(:repeat), :log => true)
390
+ silence_stdout do
391
+ client = new_client(:endpoint => @server.url(:repeat), :log => true)
393
392
 
394
- client.globals[:filters] << :password
393
+ client.globals[:filters] << :password
395
394
 
396
- # filter out logs we're not interested in
397
- client.globals[:logger].expects(:info).at_least_once
395
+ # filter out logs we're not interested in
396
+ client.globals[:logger].expects(:info).at_least_once
398
397
 
399
- # check whether the password is filtered
400
- client.globals[:logger].expects(:debug).with { |message|
401
- message.include? "<password>***FILTERED***</password>"
402
- }.twice
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
- message = { :username => "luke", :password => "secret" }
405
- client.call(:authenticate, :message => message)
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
- client = new_client(:endpoint => @server.url(:repeat), :pretty_print_xml => true, :log => true)
411
+ silence_stdout do
412
+ client = new_client(:endpoint => @server.url(:repeat), :pretty_print_xml => true, :log => true)
412
413
 
413
- # filter out logs we're not interested in
414
- client.globals[:logger].expects(:info).at_least_once
414
+ # filter out logs we're not interested in
415
+ client.globals[:logger].expects(:info).at_least_once
415
416
 
416
- # check whether the message is pretty printed
417
- client.globals[:logger].expects(:debug).with { |message|
418
- envelope = message =~ /\n<env:Envelope/
419
- body = message =~ /\n <env:Body>/
420
- message_tag = message =~ /\n <tns:authenticate\/>/
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
- envelope && body && message_tag
423
- }.twice
423
+ envelope && body && message_tag
424
+ }.twice
424
425
 
425
- client.call(:authenticate)
426
+ client.call(:authenticate)
427
+ end
426
428
  end
427
429
  end
428
430