spec/array_spec.rb in rico-0.3.0 vs spec/array_spec.rb in rico-0.4.0

- old
+ new

@@ -4,140 +4,140 @@ before :each do RiakHelpers.reset! end describe "#add" do + it "writes a single value to an array" do + a = Rico::Array.new RiakHelpers.bucket, "array_add_single_value" + a.add 5 + b = Rico::Array.new RiakHelpers.bucket, "array_add_single_value" + b.members.should eql [5] + end + it "writes values to an array" do - a = Rico::Array.new RiakHelpers.bucket, "add_writes_values" - a.add(1, 2, 3) - b = Rico::Array.new RiakHelpers.bucket, "add_writes_values" + a = Rico::Array.new RiakHelpers.bucket, "array_add_writes_values" + a.add [1, 2, 3] + b = Rico::Array.new RiakHelpers.bucket, "array_add_writes_values" b.members.should eql [1, 2, 3] end - it "retains a single value as an array" do - a = Rico::Array.new RiakHelpers.bucket, "add_flattens_values" - a.add([1, 2, 3]) - b = Rico::Array.new RiakHelpers.bucket, "add_flattens_values" - b.members.should eql [[1, 2, 3]] - end - it "allows duplicate values" do - a = Rico::Array.new RiakHelpers.bucket, "add_allows_duplicates" - a.add(1, 2, 3) - a.add(2, 3, 4) - b = Rico::Array.new RiakHelpers.bucket, "add_allows_duplicates" + a = Rico::Array.new RiakHelpers.bucket, "array_add_allows_duplicates" + a.add [1, 2, 3] + a.add [2, 3, 4] + b = Rico::Array.new RiakHelpers.bucket, "array_add_allows_duplicates" b.members.should eql [1, 2, 3, 2, 3, 4] end it "retains order of addition" do - a = Rico::Array.new RiakHelpers.bucket, "add_retains_order" - a.add(5, 3, 1, 6, 7) - b = Rico::Array.new RiakHelpers.bucket, "add_retains_order" + a = Rico::Array.new RiakHelpers.bucket, "array_add_retains_order" + a.add [5, 3, 1, 6, 7] + b = Rico::Array.new RiakHelpers.bucket, "array_add_retains_order" b.members.should eql [5, 3, 1, 6, 7] end it "works with strings" do - a = Rico::Array.new RiakHelpers.bucket, "add_works_with_strings" - a.add("john", "joe", "jason") - a.add("brian", "bob") - b = Rico::Array.new RiakHelpers.bucket, "add_works_with_strings" + a = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_strings" + a.add ["john", "joe", "jason"] + a.add ["brian", "bob"] + b = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_strings" b.members.should eql ["john", "joe", "jason", "brian", "bob"] end it "works with arrays" do - a = Rico::Array.new RiakHelpers.bucket, "add_works_with_arrays" - a.add([1,2,3], [4,5,6], [7,8,9]) - a.add(["a", "b", 37.2]) - b = Rico::Array.new RiakHelpers.bucket, "add_works_with_arrays" + a = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_arrays" + a.add [[1,2,3], [4,5,6], [7,8,9]] + a.add [["a", "b", 37.2]] + b = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_arrays" b.members.should eql [[1,2,3], [4,5,6], [7,8,9], ["a", "b", 37.2]] end it "works with hashmaps" do - a = Rico::Array.new RiakHelpers.bucket, "add_works_with_hashmaps" - a.add({a: 1, b: 2}, {charlie: 6}) - a.add({"usd" => 37.2, "eur" => 31.6}) - b = Rico::Array.new RiakHelpers.bucket, "add_works_with_hashmaps" + a = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_hashmaps" + a.add [{a: 1, b: 2}, {charlie: 6}] + a.add [{"usd" => 37.2, "eur" => 31.6}] + b = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_hashmaps" b.members.should eql [{"a" => 1, "b" => 2}, {"charlie" => 6}, {"usd" => 37.2, "eur" => 31.6}] end it "works with mixed types" do - a = Rico::Array.new RiakHelpers.bucket, "add_works_with_mixed_types" - a.add({"usd" => 123.41, "cad" => 61.89}) - a.add("Bears", "Beets", "Battlestar Galactica") - a.add(3.14159) - a.add(71) - b = Rico::Array.new RiakHelpers.bucket, "add_works_with_mixed_types" + a = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_mixed_types" + a.add [{"usd" => 123.41, "cad" => 61.89}] + a.add ["Bears", "Beets", "Battlestar Galactica"] + a.add 3.14159 + a.add 71 + b = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_mixed_types" b.members.should eql [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71] end end describe "#remove" do it "removes existing values" do - a = Rico::Array.new RiakHelpers.bucket, "remove_removes" - a.add({"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", :slumdog, "Battlestar Galactica", 3.14159, 71) - b = Rico::Array.new RiakHelpers.bucket, "remove_removes" - b.remove(3.14159, "Beets") - b.remove("slumdog") - c = Rico::Array.new RiakHelpers.bucket, "remove_removes" + a = Rico::Array.new RiakHelpers.bucket, "array_remove_removes" + a.add [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", :slumdog, "Battlestar Galactica", 3.14159, 71] + b = Rico::Array.new RiakHelpers.bucket, "array_remove_removes" + b.remove [3.14159, "Beets"] + b.remove ["slumdog"] + c = Rico::Array.new RiakHelpers.bucket, "array_remove_removes" c.members.should eql [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Battlestar Galactica", 71] end it "does not throw on removal on non-key" do lambda do - Rico::Array.new(RiakHelpers.bucket, "remove_nonkey").remove("bill") + Rico::Array.new(RiakHelpers.bucket, "array_remove_nonkey").remove("bill") end.should_not raise_error end it "does not throw on removal on non-value" do lambda do - a = Rico::Array.new RiakHelpers.bucket, "remove_nonvalue" - a.add 37, 68, 54 + a = Rico::Array.new RiakHelpers.bucket, "array_remove_nonvalue" + a.add [37, 68, 54] a.remove "josh" end.should_not raise_error end end describe "#members" do it "returns a list of members" do - a = Rico::Array.new RiakHelpers.bucket, "members_lists" - a.add({"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71) - b = Rico::Array.new RiakHelpers.bucket, "members_lists" + a = Rico::Array.new RiakHelpers.bucket, "array_members_lists" + a.add [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71] + b = Rico::Array.new RiakHelpers.bucket, "array_members_lists" b.members.should eql [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71] end end describe "#member?" do it "returns a true if a member" do - a = Rico::Array.new RiakHelpers.bucket, "members_lists" - a.add({"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71) - b = Rico::Array.new RiakHelpers.bucket, "members_lists" + a = Rico::Array.new RiakHelpers.bucket, "array_members_lists" + a.add [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71] + b = Rico::Array.new RiakHelpers.bucket, "array_members_lists" b.member?({"usd" => 123.41, "cad" => 61.89}).should eql true end it "returns a true if not a member" do - a = Rico::Array.new RiakHelpers.bucket, "members_lists" - a.add({"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71) - b = Rico::Array.new RiakHelpers.bucket, "members_lists" + a = Rico::Array.new RiakHelpers.bucket, "array_members_lists" + a.add [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71] + b = Rico::Array.new RiakHelpers.bucket, "array_members_lists" b.member?({"usd" => 123.42, "cad" => 61.89}).should eql false end end describe "#length" do it "returns zero for an empty list" do - a = Rico::Array.new RiakHelpers.bucket, "length_empty" + a = Rico::Array.new RiakHelpers.bucket, "array_length_empty" a.length.should eql 0 end it "returns the number of entries" do - a = Rico::Array.new RiakHelpers.bucket, "length_6" - a.add(1, 2, 3, 4, 5, 6) + a = Rico::Array.new RiakHelpers.bucket, "array_length_6" + a.add [1, 2, 3, 4, 5, 6] a.length.should eql 6 end it "is aliased to #count" do - a = Rico::Array.new RiakHelpers.bucket, "length_alias" - a.add(1, 2, 3, 4, 5, 6) + a = Rico::Array.new RiakHelpers.bucket, "array_length_alias" + a.add [1, 2, 3, 4, 5, 6] a.count.should eql 6 end end describe ".resolve" do @@ -162,11 +162,11 @@ result.data["_deletes"].should eql [4] end end it "is enumerable" do - a = Rico::Array.new RiakHelpers.bucket, "enumerable" - a.add(3, 1, 4, 1, 5, 9) + a = Rico::Array.new RiakHelpers.bucket, "array_enumerable" + a.add [3, 1, 4, 1, 5, 9] a.to_a.should eql [3, 1, 4, 1, 5, 9] a.each { }.length.should eql 6 a.map {|x| x + 1 }.should eql [4, 2, 5, 2, 6, 10] a[4].should eql 5 end