added security type models, improved cashflow, bug- and layout fixes along the way
[smr.git] / gui / test / unit / smr_watchlist_test.rb
bloba554523fcbaf70b32c2f72d7c5cc8f1aaac64fbb
2 # This file is part of SMR.
4 # SMR is free software: you can redistribute it and/or modify it under the
5 # terms of the GNU General Public License as published by the Free Software
6 # Foundation, either version 3 of the License, or (at your option) any later
7 # version.
9 # SMR is distributed in the hope that it will be useful, but WITHOUT ANY
10 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License along with
14 # SMR.  If not, see <http://www.gnu.org/licenses/>.
16 require 'test_helper'
18 module Smr  #:nodoc:
20     class WatchlistTest < ActiveSupport::TestCase
21         ##
22         # verify that all securites being held in a position are *not* shown in the watchlist
23         test 'only securities not held in positions' do
24             date = Time.now
25             a = Smr::Asset.new(User.find(1).id, date)
26             w = Smr::Watchlist.new(
27                     User.find(1), date,
28                     :exclude_securities=>a.open_positions.collect{ |p| p.security.id }.uniq
29             )
30             assert w.is_a?(Smr::Watchlist)
31             assert a.is_a?(Smr::Asset)
33             w.each do |i|
34                 found_id=false
35                 a.open_positions.each{|ap|
36                    assert (ap.id_security != i.id), 'watchlist id_security=%i found in Smr::Asset.open_positions' % i.id
37                 }
38             end
39         end
41         ##
42         # when the Security* type model reports #is_expired? == true, the
43         # Security should not be shown in the list.
44         test 'expired securities not shown' do
45             id_matured_bond = 110   # Country A 7.5% 1990(10)
46             id_expired_stock = 111  # Company A Common Stock - Old Shares
48             date = Time.new(2015,5,30)
49             w = Smr::Watchlist.new(User.find(2), date)
51             w.each do |wi|
52                 assert_not_equal id_matured_bond, wi.id, 'found matured bond in watchlist'
53                 assert_not_equal id_expired_stock, wi.id, 'found expired stock in watchlist'
54             end
55         end
56     end
58 end # module