Sha256: 1d42b771255528b8826b32baad6534a56d3e598ab7330a7685c51b2b514b454d

Contents?: true

Size: 1.94 KB

Versions: 3

Compression:

Stored size: 1.94 KB

Contents

require 'spec_helper'

describe 'Integration with Taxcloud' do

  subject(:client) { Sekken.new fixture('wsdl/taxcloud') }

  it 'returns a map of services and ports' do
    expect(client.services).to eq(
      'TaxCloud' => {
        :ports => {
          'TaxCloudSoap' => {
            :type     => 'http://schemas.xmlsoap.org/wsdl/soap/',
            :location => 'https://api.taxcloud.net/1.0/TaxCloud.asmx'
          },
          'TaxCloudSoap12' => {
            :type     => 'http://schemas.xmlsoap.org/wsdl/soap12/',
            :location => 'https://api.taxcloud.net/1.0/TaxCloud.asmx'
          }
        }
      }
    )
  end

  it 'knows the operations' do
    service, port = 'TaxCloud', 'TaxCloudSoap'
    operation = client.operation(service, port, 'VerifyAddress')

    expect(operation.soap_action).to eq('http://taxcloud.net/VerifyAddress')
    expect(operation.endpoint).to eq('https://api.taxcloud.net/1.0/TaxCloud.asmx')

    namespace = 'http://taxcloud.net'

    expect(operation.body_parts).to eq([
      [['VerifyAddress'],               { namespace: namespace, form: 'qualified', singular: true }],
      [['VerifyAddress', 'uspsUserID'], { namespace: namespace, form: 'qualified', singular: true, type: 's:string' }],
      [['VerifyAddress', 'address1'],   { namespace: namespace, form: 'qualified', singular: true, type: 's:string' }],
      [['VerifyAddress', 'address2'],   { namespace: namespace, form: 'qualified', singular: true, type: 's:string' }],
      [['VerifyAddress', 'city'],       { namespace: namespace, form: 'qualified', singular: true, type: 's:string' }],
      [['VerifyAddress', 'state'],      { namespace: namespace, form: 'qualified', singular: true, type: 's:string' }],
      [['VerifyAddress', 'zip5'],       { namespace: namespace, form: 'qualified', singular: true, type: 's:string' }],
      [['VerifyAddress', 'zip4'],       { namespace: namespace, form: 'qualified', singular: true, type: 's:string' }]
    ])
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sekken-0.3.0 spec/integration/taxcloud_spec.rb
sekken-0.2.0 spec/integration/taxcloud_spec.rb
sekken-0.1.0 spec/integration/taxcloud_spec.rb