Sha256: 3251f0002c5b01472135b5e58485482e4dcfedb200ec5a551db0f4f3abd8a689

Contents?: true

Size: 1.61 KB

Versions: 6

Compression:

Stored size: 1.61 KB

Contents

require 'spec_helper'

describe PensioAPI::Responses::Transaction do
  before :each do
    stub_pensio_response('/merchant/API/payments', 'payments')
  end

  let(:response) { PensioAPI::Transaction.find }

  describe 'object mapping' do
    it 'maps transactions to transaction objects' do
      expect(response.transactions.all? { |r| r.class == PensioAPI::Transaction }).to be_true
    end

    specify { expect(response.transactions.length).to eq(1) }

    describe '.map_transactions' do
      context 'with one transaction' do

        specify { expect(response.transactions.length).to eq(1) }
        specify { expect(response.transactions.map(&:class)).to eq([PensioAPI::Transaction]) }

        it 'returns the transaction inside an array' do
          expect(response.transactions).to be_an_instance_of(Array)
        end
      end

      context 'with more than one transaction' do
        before :each do
          stub_pensio_response('/merchant/API/payments', 'multiple_payments')
        end

        let(:response) { PensioAPI::Transaction.find }

        specify { expect(response.transactions.length).to eq(2) }
        specify { expect(response.transactions.map(&:class).uniq).to eq([PensioAPI::Transaction]) }

        it 'returns an array' do
          expect(response.transactions).to be_an_instance_of(Array)
        end
      end
    end
  end

  context 'with no payments' do
    before :each do
      stub_pensio_response('/merchant/API/payments', 'payments_none')
    end

    describe '.transactions' do
      it 'returns an empty array' do
        expect(response.transactions).to eq([])
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pensio_api-0.3.3 spec/lib/pensio_api/responses/transaction_spec.rb
pensio_api-0.3.2 spec/lib/pensio_api/responses/transaction_spec.rb
pensio_api-0.3.1 spec/lib/pensio_api/responses/transaction_spec.rb
pensio_api-0.3.0 spec/lib/pensio_api/responses/transaction_spec.rb
pensio_api-0.2.3 spec/lib/pensio_api/responses/transaction_spec.rb
pensio_api-0.2.2 spec/lib/pensio_api/responses/transaction_spec.rb