savon 2.1.0 → 2.2.0

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