spec/latinum/collection_spec.rb in latinum-1.2.0 vs spec/latinum/collection_spec.rb in latinum-1.3.0
- old
+ new
@@ -21,78 +21,84 @@
require 'latinum'
require 'latinum/currencies/global'
require 'set'
-module Latinum::CollectionSpec
- describe Latinum::Collection do
- it "can set an initial value" do
- subject["NZD"] = BigDecimal.new("20")
-
- expect(subject["NZD"]).to be == Latinum::Resource.load("20 NZD")
- end
+RSpec.describe Latinum::Collection do
+ it "can set an initial value" do
+ subject["NZD"] = BigDecimal.new("20")
- it "should sum up currencies correctly" do
- resource = Latinum::Resource.new("10", "NZD")
-
- subject << resource
- expect(subject["NZD"]).to be == resource
-
- subject << resource
- expect(subject["NZD"]).to be == (resource * 2)
- end
+ expect(subject["NZD"]).to be == Latinum::Resource.load("20 NZD")
+ end
+
+ it "can be negated" do
+ subject["NZD"] = BigDecimal.new("20")
- it "should sum up multiple currencies correctly" do
- resources = [
- Latinum::Resource.new("10", "NZD"),
- Latinum::Resource.new("10", "AUD"),
- Latinum::Resource.new("10", "USD"),
- Latinum::Resource.new("10", "NZD"),
- Latinum::Resource.new("10", "AUD"),
- Latinum::Resource.new("10", "USD"),
- ]
-
- subject = Latinum::Collection.new
- subject << resources
-
- expect(subject["NZD"]).to be == (resources[0] * 2)
- expect(subject.names).to be == Set.new(["NZD", "AUD", "USD"])
- end
+ negated = -subject
- it "can add two collections together" do
- other_resources = [
- Latinum::Resource.new("10", "NZD"),
- Latinum::Resource.new("10", "AUD"),
- Latinum::Resource.new("10", "USD"),
- ]
-
- other_collection = Latinum::Collection.new
- other_collection << other_resources
-
- resources = [
- Latinum::Resource.new("10", "NZD"),
- Latinum::Resource.new("10", "AUD"),
- Latinum::Resource.new("10", "USD"),
- ]
-
- subject << resources
- subject << other_collection
-
- expect(subject["NZD"]).to be == Latinum::Resource.load("20 NZD")
- expect(subject["AUD"]).to be == Latinum::Resource.load("20 AUD")
- expect(subject["USD"]).to be == Latinum::Resource.load("20 USD")
- end
+ expect(negated["NZD"]).to be == BigDecimal.new("-20")
+ end
+
+ it "should sum up currencies correctly" do
+ resource = Latinum::Resource.new("10", "NZD")
- it "can enumerate resources" do
- resources = [
- Latinum::Resource.new("10", "NZD"),
- Latinum::Resource.new("10", "AUD"),
- Latinum::Resource.new("10", "USD"),
- ]
-
- collection = Latinum::Collection.new
- collection << resources
-
- expect(collection.each.to_a).to be == resources
- end
+ subject << resource
+ expect(subject["NZD"]).to be == resource
+
+ subject << resource
+ expect(subject["NZD"]).to be == (resource * 2)
+ end
+
+ it "should sum up multiple currencies correctly" do
+ resources = [
+ Latinum::Resource.new("10", "NZD"),
+ Latinum::Resource.new("10", "AUD"),
+ Latinum::Resource.new("10", "USD"),
+ Latinum::Resource.new("10", "NZD"),
+ Latinum::Resource.new("10", "AUD"),
+ Latinum::Resource.new("10", "USD"),
+ ]
+
+ subject = Latinum::Collection.new
+ subject << resources
+
+ expect(subject["NZD"]).to be == (resources[0] * 2)
+ expect(subject.names).to be == Set.new(["NZD", "AUD", "USD"])
+ end
+
+ it "can add two collections together" do
+ other_resources = [
+ Latinum::Resource.new("10", "NZD"),
+ Latinum::Resource.new("10", "AUD"),
+ Latinum::Resource.new("10", "USD"),
+ ]
+
+ other_collection = Latinum::Collection.new
+ other_collection << other_resources
+
+ resources = [
+ Latinum::Resource.new("10", "NZD"),
+ Latinum::Resource.new("10", "AUD"),
+ Latinum::Resource.new("10", "USD"),
+ ]
+
+ subject << resources
+ subject << other_collection
+
+ expect(subject["NZD"]).to be == Latinum::Resource.load("20 NZD")
+ expect(subject["AUD"]).to be == Latinum::Resource.load("20 AUD")
+ expect(subject["USD"]).to be == Latinum::Resource.load("20 USD")
+ end
+
+ it "can enumerate resources" do
+ resources = [
+ Latinum::Resource.new("10", "NZD"),
+ Latinum::Resource.new("10", "AUD"),
+ Latinum::Resource.new("10", "USD"),
+ ]
+
+ collection = Latinum::Collection.new
+ collection << resources
+
+ expect(collection.each.to_a).to be == resources
end
end