Skip to content

Commit

Permalink
Add Account#amounts and Account#entries
Browse files Browse the repository at this point in the history
  • Loading branch information
mbulat committed May 12, 2016
1 parent 02b23e7 commit 0696f8e
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
2 changes: 2 additions & 0 deletions app/models/plutus/account.rb
Expand Up @@ -32,8 +32,10 @@ module Plutus
class Account < ActiveRecord::Base
class_attribute :normal_credit_balance

has_many :amounts
has_many :credit_amounts, :extend => AmountsExtension, :class_name => 'Plutus::CreditAmount'
has_many :debit_amounts, :extend => AmountsExtension, :class_name => 'Plutus::DebitAmount'
has_many :entries, through: :amounts, source: :entry
has_many :credit_entries, :through => :credit_amounts, :source => :entry, :class_name => 'Plutus::Entry'
has_many :debit_entries, :through => :debit_amounts, :source => :entry, :class_name => 'Plutus::Entry'

Expand Down
57 changes: 57 additions & 0 deletions spec/models/account_spec.rb
Expand Up @@ -72,5 +72,62 @@ module Plutus
it { should == 0 }
end
end

describe "#amounts" do
it "returns all credit and debit amounts" do
equity = FactoryGirl.create(:equity)
asset = FactoryGirl.create(:asset)
expense = FactoryGirl.create(:expense)

investment = Entry.new(
description: "Initial investment",
date: Date.today,
debits: [{ account_name: equity.name, amount: 1000 }],
credits: [{ account_name: asset.name, amount: 1000 }],
)
investment.save

purchase = Entry.new(
description: "First computer",
date: Date.today,
debits: [{ account_name: asset.name, amount: 900 }],
credits: [{ account_name: expense.name, amount: 900 }],
)
purchase.save

expect(equity.amounts.size).to eq 1
expect(asset.amounts.size).to eq 2
expect(expense.amounts.size).to eq 1
end
end

describe "#entries" do
it "returns all credit and debit entries" do
equity = FactoryGirl.create(:equity)
asset = FactoryGirl.create(:asset)
expense = FactoryGirl.create(:expense)

investment = Entry.new(
description: "Initial investment",
date: Date.today,
debits: [{ account_name: equity.name, amount: 1000 }],
credits: [{ account_name: asset.name, amount: 1000 }],
)
investment.save

purchase = Entry.new(
description: "First computer",
date: Date.today,
debits: [{ account_name: asset.name, amount: 900 }],
credits: [{ account_name: expense.name, amount: 900 }],
)
purchase.save

expect(equity.entries.size).to eq 1
expect(asset.entries.size).to eq 2
expect(expense.entries.size).to eq 1
end
end

end
end

0 comments on commit 0696f8e

Please sign in to comment.