spec/latinum/resource_spec.rb in latinum-0.7.1 vs spec/latinum/resource_spec.rb in latinum-1.0.0
- old
+ new
@@ -74,11 +74,59 @@
end
it "should compute quotient" do
original_price = Latinum::Resource.load("10 NZD")
- quotient = original_price / 2.0
-
expect(original_price / 2.0).to be == Latinum::Resource.load("5 NZD")
+ end
+
+ it "should add two resources of the same symbol" do
+ a = Latinum::Resource.load("10 NZD")
+ b = Latinum::Resource.load("5 NZD")
+ c = Latinum::Resource.load("15 NZD")
+
+ expect(a+b).to be == c
+ end
+
+ it "should fail two resources of different symbol" do
+ a = Latinum::Resource.load("10 NZD")
+ b = Latinum::Resource.load("5 USD")
+
+ expect{a+b}.to raise_error(Latinum::DifferentResourceNameError)
+ end
+
+ it "should be able to negate a value" do
+ a = Latinum::Resource.load("10 NZD")
+ b = Latinum::Resource.load("-10 NZD")
+
+ expect(-a).to be == b
+ end
+
+ it "can be used as a hash key" do
+ a = Latinum::Resource.load("10 NZD")
+ b = Latinum::Resource.load("0 NZD")
+
+ hash = {a => true}
+
+ expect(hash).to be_include a
+ expect(hash).to_not be_include b
+ end
+
+ it "can be zero" do
+ a = Latinum::Resource.load("10 NZD")
+ b = Latinum::Resource.load("0 NZD")
+
+ expect(a).to_not be_zero
+ expect(b).to be_zero
+ end
+
+ it "can be eql?" do
+ a = Latinum::Resource.load("10 NZD")
+ b = Latinum::Resource.load("0 NZD")
+ c = Latinum::Resource.load("0 NZD")
+
+ expect(a).to be_eql a
+ expect(a).to_not be_eql b
+ expect(b).to be_eql c
end
end
end