Sha256: 610ee23f7bde38ebae690478eadcd6edca5eadf52eeebff2af9e46edfb29e01a

Contents?: true

Size: 1.93 KB

Versions: 1

Compression:

Stored size: 1.93 KB

Contents

require './spec/spec_helper'

describe Economic::DebtorProxy do
  let(:session) { make_session }
  subject { Economic::DebtorProxy.new(session) }

  describe "new" do
    it "stores session" do
      subject.session.should === session
    end
  end

  describe "find" do
    before :each do
      savon.stubs('Debtor_GetData').returns(:success)
    end

    it "gets debtor data from API" do
      savon.expects('Debtor_GetData').with('entityHandle' => {'Number' => 42}).returns(:success)
      subject.find(42)
    end

    it "returns Debtor object" do
      subject.find(42).should be_instance_of(Economic::Debtor)
    end
  end

  describe "find_by_ci_number" do
    it "uses FindByCINumber on API" do
      savon.expects('Debtor_FindByCINumber').with('ciNumber' => '12345678').returns(:many)
      subject.find_by_ci_number('12345678')
    end

    context "when many debtors exist" do
      before :each do
        savon.stubs('Debtor_FindByCINumber').returns(:many)
      end

      let(:results) { subject.find_by_ci_number('12345678') }

      it "returns a Debtor object for each result" do
        results.size.should == 2
        results.all? { |result| result.should be_instance_of(Economic::Debtor) }
      end

      it "returns partial Debtor objects" do
        results.all? { |result| result.should be_partial }
      end

      it "returns persisted Debtor objects" do
        results.all? { |result| result.should be_persisted }
      end
    end
  end

  describe "next_available_number" do
    it "gets the next available debtor number from API" do
      savon.expects('Debtor_GetNextAvailableNumber').returns(:success)
      subject.next_available_number.should == '105'
    end
  end

  describe "build" do
    subject { session.debtors.build }

    it "instantiates a new Debtor" do
      subject.should be_instance_of(Economic::Debtor)
    end

    it "assigns the session to the Debtor" do
      subject.session.should === session
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rconomic-0.1.0 spec/economic/proxies/debtor_proxy_spec.rb