Sha256: 91d49268e4f78ed8c8bb55719a99a4b1fa5872df8a19e60b07e856d052617545
Contents?: true
Size: 1.77 KB
Versions: 1
Compression:
Stored size: 1.77 KB
Contents
require 'test_helper' class Person extend Direction command [:make_me_a_sandwich, :cook] => :@friend query [:activities, :go] => :friend attr_accessor :friend end class Friend def make_me_a_sandwich Menu.record "I made a sandwich!" end def cook(what) Menu.record what end def activities 'running, biking, hiking' end def go(do_what) Activities.record do_what end end module Menu def self.record(text) list << text end def self.list @list ||= [] end def self.clear @list = [] end end module Activities def self.record(text) list << text end def self.list @list ||= [] end def self.clear @list = [] end end describe Direction, 'command' do let(:friend){ Friend.new } let(:person){ person = Person.new person.friend = friend person } before do Menu.clear end it 'forwards a message to another object' do assert_equal [], Menu.list person.make_me_a_sandwich assert_includes Menu.list, "I made a sandwich!" end it 'returns the original receiver' do assert_equal person, person.make_me_a_sandwich end it 'forwards additional arguments' do assert_equal [], Menu.list person.cook('yum') assert_includes Menu.list, "yum" end end describe Direction, 'query' do let(:friend){ Friend.new } let(:person){ person = Person.new person.friend = friend person } before do Activities.clear end it 'forwards a message to another object' do assert_includes person.activities, "running, biking, hiking" end it 'forwards additional arguments' do assert_equal [], Activities.list person.go('have fun') assert_includes Activities.list, "have fun" end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
direction-0.0.3 | test/direction_test.rb |