Source

RubyCSharp / Dynamic / ruby_dynamic / spec / customer_spec.rb

require './customer'

describe Customer do

    describe "Dynamic Behaviors" do
    
      context "Given additional dynamic beheavior for a customer" do
      
        before(:each) do
            @additional_behavior = { :full_name => 
                                      lambda { |c| "#{c.first_name} #{c.last_name}" } }
        end
      
        describe "When object is constructed" do
          
          let(:customer) { Customer.new(@additional_behavior) } 

          it "should expose behaviors" do
            customer.should respond_to(:full_name)
          end
          
          it "should make behaviors accessible" do
            customer.first_name = "Joe"
            customer.last_name = "Jones"
            customer.full_name.should == "Joe Jones"
          end
        end
      end
   end
end