-
Notifications
You must be signed in to change notification settings - Fork 624
/
constructors_spec.rb
91 lines (68 loc) · 2.42 KB
/
constructors_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# encoding: utf-8
describe Money::Constructors do
describe "::empty" do
it "creates a new Money object of 0 cents" do
expect(Money.empty).to eq Money.new(0)
end
it "instantiates a subclass when inheritance is used" do
special_money_class = Class.new(Money)
expect(special_money_class.empty).to be_a special_money_class
end
end
describe "::zero" do
subject { Money.zero }
it { is_expected.to eq Money.empty }
it "instantiates a subclass when inheritance is used" do
special_money_class = Class.new(Money)
expect(special_money_class.zero).to be_a special_money_class
end
end
describe "::ca_dollar" do
it "creates a new Money object of the given value in CAD" do
expect(Money.ca_dollar(50)).to eq Money.new(50, "CAD")
end
it "is aliased to ::cad" do
expect(Money.cad(50)).to eq Money.ca_dollar(50)
end
it "instantiates a subclass when inheritance is used" do
special_money_class = Class.new(Money)
expect(special_money_class.ca_dollar(0)).to be_a special_money_class
end
end
describe "::us_dollar" do
it "creates a new Money object of the given value in USD" do
expect(Money.us_dollar(50)).to eq Money.new(50, "USD")
end
it "is aliased to ::usd" do
expect(Money.usd(50)).to eq Money.us_dollar(50)
end
it "instantiates a subclass when inheritance is used" do
special_money_class = Class.new(Money)
expect(special_money_class.us_dollar(0)).to be_a special_money_class
end
end
describe "::euro" do
it "creates a new Money object of the given value in EUR" do
expect(Money.euro(50)).to eq Money.new(50, "EUR")
end
it "is aliased to ::eur" do
expect(Money.eur(50)).to eq Money.euro(50)
end
it "instantiates a subclass when inheritance is used" do
special_money_class = Class.new(Money)
expect(special_money_class.euro(0)).to be_a special_money_class
end
end
describe "::pound_sterling" do
it "creates a new Money object of the given value in GBP" do
expect(Money.pound_sterling(50)).to eq Money.new(50, "GBP")
end
it "is aliased to ::gbp" do
expect(Money.gbp(50)).to eq Money.pound_sterling(50)
end
it "instantiates a subclass when inheritance is used" do
special_money_class = Class.new(Money)
expect(special_money_class.pound_sterling(0)).to be_a special_money_class
end
end
end