spec/scope_spec.rb in expressive-0.0.8 vs spec/scope_spec.rb in expressive-0.0.9

- old
+ new

@@ -1,12 +1,56 @@ require "spec_helper" -describe "TopLevel" do +module Expressive + describe TopLevel do - describe "to_hash" do - it "return only the hash data" do - @scope = Expressive::TopLevel.new - @scope["hello"] = "world" - @scope.to_hash.should eql({"hello" => "world"}) + describe "#to_hash" do + it "return only the hash data" do + @scope = TopLevel.new + @scope["hello"] = "world" + @scope.to_hash.should eql({"hello" => "world"}) + end + end + + end + + describe ExtendedValue do + it "sets the multiple values of a ExtendedValue" do + @scope = TopLevel.new + + @owned_by_ext_value = ExtendedValue.new(:x_owned_by, @scope) + @owned_by_ext_value.setter = Proc.new do |value, scope| + scope["owned_by_id"] = value.id + scope["owned_by_type"] = value.class.to_s + end + + @scope["x_owned_by"] = mock(:current_user, id: 1) + @scope["owned_by_id"].should eql 1 + @scope["owned_by_type"].should eql "RSpec::Mocks::Mock" + + + @current_state_ext_value = ExtendedValue.new(:x_current_state, @scope) + @current_state_ext_value.setter = Proc.new do |value, scope| + scope["current_state"] = value.state + scope["current_state_id"] = value.id + end + + @scope["x_current_state"] = mock(:some_state, id: 1, state: "Pending") + @scope["current_state_id"].should eql 1 + @scope["current_state"].should eql "Pending" + end + it "add values to a Set construct" do + @scope = TopLevel.new + + @participating_teams_ext_value = ExtendedValue.new(:x_participating_teams, @scope) + @participating_teams_ext_value.adder = Proc.new do |value, scope| + scope["participating_teams"] << value.id unless scope["participating_teams"].include?(value.id) + end + + @scope["participating_teams"] = [1] + @scope["x_participating_teams"] << mock(:some_team, id: 2, display_name: "The B-Team") + @scope["x_participating_teams"] << mock(:some_team, id: 2, display_name: "The B-Team") + @scope["participating_teams"].should =~ [1,2] + end end end