require "./spec/spec_helper" describe Economic::CashBookProxy do let(:session) { make_session } subject { Economic::CashBookProxy.new(session) } describe ".new" do it "stores session" do expect(subject.session).to equal(session) end end describe ".build" do it "instantiates a new CashBook" do expect(subject.build).to be_instance_of(Economic::CashBook) end it "assigns the session to the CashBook" do expect(subject.build.session).to equal(session) end end describe ".all" do it "returns multiple cashbooks" do stub_request("CashBook_GetAll", nil, :multiple) stub_request("CashBook_GetDataArray", nil, :multiple) all = subject.all expect(all.size).to eq(2) all.each { |cash_book| expect(cash_book).to be_instance_of(Economic::CashBook) } end it "properly fills out handles of cash books" do # Issue #12 stub_request("CashBook_GetAll", nil, :multiple) stub_request("CashBook_GetDataArray", nil, :multiple) stub_request("CashBook_GetData", nil, :success) stub_request("CashBook_GetAll", nil, :multiple) stub_request("CashBook_GetDataArray", nil, :multiple) cash_book = subject.find(subject.all.first.handle) expect(subject.all.first.handle).to eq(cash_book.handle) end end describe ".get_name" do it "returns a cash book with a name" do mock_request("CashBook_GetName", {"cashBookHandle" => {"Number" => "52"}}, :success) result = subject.get_name("52") expect(result).to be_instance_of(Economic::CashBook) expect(result.number).to eq("52") expect(result.name).to be_a(String) end end describe "#last" do it "returns the last cash book" do stub_request("CashBook_GetAll", nil, :multiple) stub_request("CashBook_GetDataArray", nil, :multiple) expect(subject.all.last.name).to eq("Another cash book") end end describe "#[]" do it "returns the specific cash book" do stub_request("CashBook_GetAll", nil, :multiple) stub_request("CashBook_GetDataArray", nil, :multiple) expect(subject.all[1].name).to eq("Another cash book") end end end