Sha256: 2dbd482bf0dbe6054fbfd47315bc2e3b2afda203c5c7aa5a01264007f2103228

Contents?: true

Size: 1.96 KB

Versions: 2

Compression:

Stored size: 1.96 KB

Contents

require './spec/spec_helper'

describe Economic::CurrentInvoiceLineProxy do
  let(:session) { make_session }
  let(:invoice) { make_current_invoice(:session => session) }
  subject { Economic::CurrentInvoiceLineProxy.new(invoice) }

  describe "new" do
    it "stores owner" do
      subject.owner.should == invoice
    end

    it "stores session" do
      subject.session.should == invoice.session
    end
  end

  describe ".build" do
    it "instantiates a new CurrentInvoiceLine" do
      subject.build.should be_instance_of(Economic::CurrentInvoiceLine)
    end

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

    it "should not build a partial CurrentInvoiceLine" do
      subject.build.should_not be_partial
    end

    context "when owner is a CurrentInvoice" do
      subject { invoice.lines }

      it "should use the Debtors session" do
        subject.build.session.should == invoice.session
      end

      it "should initialize with values from CurrentInvoice" do
        invoice_line = subject.build
        invoice_line.invoice_handle.should == invoice.handle
      end
    end
  end

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

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

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

  describe "enumerable" do
    it "can be empty" do
      subject.should be_empty
    end

    it "can be appended to" do
      line = Economic::CurrentInvoiceLine.new
      subject << line
      subject.items.should == [line]
    end

    it "can be iterated over" do
      line = Economic::CurrentInvoiceLine.new
      subject << line
      subject.all? { |l| l == [line] }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rconomic-0.2.0 spec/economic/proxies/current_invoice_line_proxy_spec.rb
rconomic-0.1.0 spec/economic/proxies/current_invoice_line_proxy_spec.rb