Sha256: 94b1868138b719a4f0ab7098d98d1ebe173613739988fe31d6282ebd657aad6d

Contents?: true

Size: 1.58 KB

Versions: 5

Compression:

Stored size: 1.58 KB

Contents

require 'spec_helper'

require 'shared_examples_for_get_resource.rb'
require 'shared_examples_for_post_resource.rb'
require 'shared_examples_for_put_resource.rb'


RSpec.describe OiApi::Client::Cards do

  let(:api) { Factory.api_client }
  let(:advertiser) { Factory.create_advertiser }
  let(:card) { Factory.create_card(advertiser_id: advertiser['id']) }

  context '#card', :vcr do

    let(:response) { api.card(advertiser['id'], card['id']) }

    let(:not_found_response) { api.card(advertiser['id'], 99999999999999) }

    it_should_behave_like 'GET resource', :card

  end

  context '#create_card', :vcr do

    let(:response) {
      api.create_card(advertiser['id'], Factory.valid_card_params)
    }

    let(:bad_response) {
      invalid_params = Factory.valid_card_params
      invalid_params.delete(:number)
      api.create_card(advertiser['id'], invalid_params)
    }

    let(:bad_response_message) {{ 'number' => ['This field is required.'] }}
    let(:bad_response_status) { 'Create Failed' }

    it_should_behave_like 'POST resource', :card

  end

  context '#update_card', :vcr do

    let(:update_params) {{ address_zip: 11211 }}

    let(:response) { api.update_card(advertiser['id'], card['id'], update_params) }

    let(:bad_response) { api.update_card(advertiser['id'], card['id'], { number: 999 }) }

    let(:bad_response_message) {{ 'number' => ['Invalid Card Number'] }}
    let(:bad_response_status) { 'Update Failed' }

    let(:not_found_response) { api.update_card(advertiser['id'], 99999999999999, update_params) }

    it_should_behave_like 'PUT resource', :card

  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
oi-api-ruby-0.1.5 spec/oi_api/client/cards_spec.rb
oi-api-ruby-0.1.4 spec/oi_api/client/cards_spec.rb
oi-api-ruby-0.1.3 spec/oi_api/client/cards_spec.rb
oi-api-ruby-0.1.2 spec/oi_api/client/cards_spec.rb
oi-api-ruby-0.1.1 spec/oi_api/client/cards_spec.rb