Changeset 181

Show
Ignore:
Timestamp:
11/17/04 21:49:51 (4 years ago)
Author:
ged
Message:

-- Added event-generation interface + basic tests to Verb

Location:
branches/simplest-thing
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/simplest-thing/lib/fm/verb.rb

    r180 r181  
    3939 
    4040 
     41    ################################################################# 
     42    ### I N S T A N C E   M E T H O D S 
     43    ################################################################# 
     44 
     45    ### Event interface: "run" the verb, generating the event/s necessary to 
     46    ### express the action in the game world. The given +instigator+ and 
     47    ### +origin+ will be used when building event/s. See FaerieMUD::Event::new 
     48    ### for definitions  
     49    def happen( instigator, origin ) 
     50        raise NotImplementedError, 
     51            "Required method #happen not implemented in %s" % 
     52            [self.class.name] 
     53    end 
     54 
     55 
    4156end # class FaerieMUD::Verb 
    4257 
  • branches/simplest-thing/tests/verb.tests.rb

    r180 r181  
    2424class FaerieMUD::VerbTestCase < FaerieMUD::TestCase 
    2525 
     26    class TestInstigator < FaerieMUD::GameObject; end 
     27    class TestOrigin < FaerieMUD::Locus; end 
     28 
     29    def setup 
     30        @instigator = TestInstigator::new 
     31        @origin = TestOrigin::new 
     32    end 
     33 
    2634 
    2735    ################################################################# 
     
    4149        } 
    4250        assert_instance_of FaerieMUD::Verb, rval 
     51    end 
    4352 
     53 
     54    ### Event-generation interface 
     55    def test_50_happen 
     56        printTestHeader "FaerieMUD::Verb: Event-generation interface" 
     57        rval = nil 
     58 
     59        derivClass = Class::new( FaerieMUD::Verb ) 
     60        derivObj = derivClass::new 
     61 
     62        # Should require an instigator and an origin 
     63        assert_raises( ArgumentError ) { derivObj.happen } 
     64        assert_raises( ArgumentError ) { derivObj.happen(@instigator) } 
     65 
     66        # Derivative classes should override #happen 
     67        assert_raises( NotImplementedError ) { 
     68            derivObj.happen( @instigator, @origin ) 
     69        } 
    4470    end 
    45      
    4671end 
    4772