Changeset 260

Show
Ignore:
Timestamp:
05/13/06 17:04:48 (3 years ago)
Author:
ged
Message:
  • Cleaned up some tests
  • Replaced last vestiges of Test::Unit::Mock with FlexMock?.
  • Documentation additions
Location:
trunk
Files:
1 removed
8 modified

Legend:

Unmodified
Added
Removed
  • trunk/FaerieMUD.tmproj

    • Property svn:mime-type set to binary/octet-stream
    r254 r260  
    44<dict> 
    55    <key>currentDocument</key> 
    6     <string>lib/fm/event.rb</string> 
     6    <string>tests/animatedobject.tests.rb</string> 
    77    <key>documents</key> 
    88    <array> 
    99        <dict> 
     10            <key>expanded</key> 
     11            <true/> 
    1012            <key>name</key> 
    1113            <string>acceptance</string> 
     
    3032        </dict> 
    3133        <dict> 
     34            <key>expanded</key> 
     35            <true/> 
    3236            <key>name</key> 
    3337            <string>docs</string> 
     
    9498            <key>filename</key> 
    9599            <string>test.rb</string> 
     100            <key>lastUsed</key> 
     101            <date>2006-04-30T01:31:28Z</date> 
    96102        </dict> 
    97103        <dict> 
     
    123129    </array> 
    124130    <key>fileHierarchyDrawerWidth</key> 
    125     <integer>200</integer> 
     131    <integer>276</integer> 
    126132    <key>metaData</key> 
    127133    <dict> 
    128         <key>bin/faeriemud.rb</key> 
    129         <dict> 
    130             <key>caret</key> 
    131             <dict> 
    132                 <key>column</key> 
    133                 <integer>0</integer> 
    134                 <key>line</key> 
    135                 <integer>136</integer> 
    136             </dict> 
    137             <key>firstVisibleColumn</key> 
    138             <integer>0</integer> 
    139             <key>firstVisibleLine</key> 
    140             <integer>90</integer> 
    141         </dict> 
    142         <key>experiments/taxonomy.rb</key> 
    143         <dict> 
    144             <key>caret</key> 
    145             <dict> 
    146                 <key>column</key> 
    147                 <integer>8</integer> 
    148                 <key>line</key> 
    149                 <integer>34</integer> 
     134        <key>experiments/personas.rb</key> 
     135        <dict> 
     136            <key>caret</key> 
     137            <dict> 
     138                <key>column</key> 
     139                <integer>0</integer> 
     140                <key>line</key> 
     141                <integer>0</integer> 
    150142            </dict> 
    151143            <key>firstVisibleColumn</key> 
     
    161153                <integer>0</integer> 
    162154                <key>line</key> 
    163                 <integer>5</integer> 
    164             </dict> 
    165             <key>firstVisibleColumn</key> 
    166             <integer>0</integer> 
    167             <key>firstVisibleLine</key> 
    168             <integer>0</integer> 
    169         </dict> 
    170         <key>lib/fm/area.rb</key> 
    171         <dict> 
    172             <key>caret</key> 
    173             <dict> 
    174                 <key>column</key> 
    175                 <integer>0</integer> 
    176                 <key>line</key> 
    177                 <integer>0</integer> 
    178             </dict> 
    179             <key>firstVisibleColumn</key> 
    180             <integer>0</integer> 
    181             <key>firstVisibleLine</key> 
    182             <integer>6</integer> 
     155                <integer>6</integer> 
     156            </dict> 
     157            <key>firstVisibleColumn</key> 
     158            <integer>0</integer> 
     159            <key>firstVisibleLine</key> 
     160            <integer>0</integer> 
    183161        </dict> 
    184162        <key>lib/fm/character.rb</key> 
     
    189167                <integer>0</integer> 
    190168                <key>line</key> 
    191                 <integer>108</integer> 
    192             </dict> 
    193             <key>firstVisibleColumn</key> 
    194             <integer>0</integer> 
    195             <key>firstVisibleLine</key> 
    196             <integer>83</integer> 
    197         </dict> 
    198         <key>lib/fm/entity.rb</key> 
    199         <dict> 
    200             <key>caret</key> 
    201             <dict> 
    202                 <key>column</key> 
    203                 <integer>0</integer> 
    204                 <key>line</key> 
    205                 <integer>166</integer> 
    206             </dict> 
    207             <key>firstVisibleColumn</key> 
    208             <integer>0</integer> 
    209             <key>firstVisibleLine</key> 
    210             <integer>130</integer> 
    211         </dict> 
    212         <key>lib/fm/event.rb</key> 
    213         <dict> 
    214             <key>caret</key> 
    215             <dict> 
    216                 <key>column</key> 
    217                 <integer>0</integer> 
    218                 <key>line</key> 
    219                 <integer>0</integer> 
    220             </dict> 
    221             <key>firstVisibleColumn</key> 
    222             <integer>0</integer> 
    223             <key>firstVisibleLine</key> 
    224             <integer>0</integer> 
    225         </dict> 
    226         <key>lib/fm/locus.rb</key> 
    227         <dict> 
    228             <key>caret</key> 
    229             <dict> 
    230                 <key>column</key> 
    231                 <integer>0</integer> 
    232                 <key>line</key> 
    233                 <integer>281</integer> 
    234             </dict> 
    235             <key>firstVisibleColumn</key> 
    236             <integer>0</integer> 
    237             <key>firstVisibleLine</key> 
    238             <integer>231</integer> 
    239         </dict> 
    240         <key>lib/fm/organism.rb</key> 
    241         <dict> 
    242             <key>caret</key> 
    243             <dict> 
    244                 <key>column</key> 
    245                 <integer>0</integer> 
    246                 <key>line</key> 
    247                 <integer>0</integer> 
    248             </dict> 
    249             <key>firstVisibleColumn</key> 
    250             <integer>0</integer> 
    251             <key>firstVisibleLine</key> 
    252             <integer>0</integer> 
    253         </dict> 
    254         <key>lib/fm/species.rb</key> 
    255         <dict> 
    256             <key>caret</key> 
    257             <dict> 
    258                 <key>column</key> 
    259                 <integer>1</integer> 
    260                 <key>line</key> 
    261                 <integer>23</integer> 
    262             </dict> 
    263             <key>firstVisibleColumn</key> 
    264             <integer>0</integer> 
    265             <key>firstVisibleLine</key> 
    266             <integer>0</integer> 
    267         </dict> 
    268         <key>lib/fm/spirit.rb</key> 
    269         <dict> 
    270             <key>caret</key> 
    271             <dict> 
    272                 <key>column</key> 
    273                 <integer>17</integer> 
    274                 <key>line</key> 
    275                 <integer>198</integer> 
    276             </dict> 
    277             <key>firstVisibleColumn</key> 
    278             <integer>0</integer> 
    279             <key>firstVisibleLine</key> 
    280             <integer>167</integer> 
    281         </dict> 
    282         <key>tests/animatedobject.tests.rb</key> 
    283         <dict> 
    284             <key>caret</key> 
    285             <dict> 
    286                 <key>column</key> 
    287                 <integer>0</integer> 
    288                 <key>line</key> 
    289                 <integer>147</integer> 
    290             </dict> 
    291             <key>firstVisibleColumn</key> 
    292             <integer>0</integer> 
    293             <key>firstVisibleLine</key> 
    294             <integer>104</integer> 
    295         </dict> 
    296         <key>tests/area.tests.rb</key> 
    297         <dict> 
    298             <key>caret</key> 
    299             <dict> 
    300                 <key>column</key> 
    301                 <integer>21</integer> 
    302                 <key>line</key> 
    303                 <integer>16</integer> 
    304             </dict> 
    305             <key>firstVisibleColumn</key> 
    306             <integer>0</integer> 
    307             <key>firstVisibleLine</key> 
    308             <integer>0</integer> 
    309         </dict> 
    310         <key>tests/simpleverb.tests.rb</key> 
    311         <dict> 
    312             <key>caret</key> 
    313             <dict> 
    314                 <key>column</key> 
    315                 <integer>42</integer> 
    316                 <key>line</key> 
    317                 <integer>78</integer> 
     169                <integer>49</integer> 
    318170            </dict> 
    319171            <key>columnSelection</key> 
     
    322174            <integer>0</integer> 
    323175            <key>firstVisibleLine</key> 
    324             <integer>47</integer> 
     176            <integer>37</integer> 
    325177            <key>selectFrom</key> 
    326178            <dict> 
    327179                <key>column</key> 
    328                 <integer>38</integer> 
    329                 <key>line</key> 
    330                 <integer>78</integer> 
     180                <integer>0</integer> 
     181                <key>line</key> 
     182                <integer>49</integer> 
    331183            </dict> 
    332184            <key>selectTo</key> 
    333185            <dict> 
    334186                <key>column</key> 
    335                 <integer>42</integer> 
    336                 <key>line</key> 
    337                 <integer>78</integer> 
    338             </dict> 
    339         </dict> 
    340         <key>tests/spirit.tests.rb</key> 
    341         <dict> 
    342             <key>caret</key> 
    343             <dict> 
    344                 <key>column</key> 
    345                 <integer>10</integer> 
    346                 <key>line</key> 
    347                 <integer>65</integer> 
    348             </dict> 
    349             <key>columnSelection</key> 
    350             <false/> 
    351             <key>firstVisibleColumn</key> 
    352             <integer>0</integer> 
    353             <key>firstVisibleLine</key> 
    354             <integer>36</integer> 
    355             <key>selectFrom</key> 
    356             <dict> 
    357                 <key>column</key> 
    358                 <integer>6</integer> 
    359                 <key>line</key> 
    360                 <integer>65</integer> 
    361             </dict> 
    362             <key>selectTo</key> 
    363             <dict> 
    364                 <key>column</key> 
    365                 <integer>10</integer> 
    366                 <key>line</key> 
    367                 <integer>65</integer> 
    368             </dict> 
     187                <integer>0</integer> 
     188                <key>line</key> 
     189                <integer>50</integer> 
     190            </dict> 
     191        </dict> 
     192        <key>lib/fm/composedobject.rb</key> 
     193        <dict> 
     194            <key>caret</key> 
     195            <dict> 
     196                <key>column</key> 
     197                <integer>0</integer> 
     198                <key>line</key> 
     199                <integer>34</integer> 
     200            </dict> 
     201            <key>firstVisibleColumn</key> 
     202            <integer>0</integer> 
     203            <key>firstVisibleLine</key> 
     204            <integer>43</integer> 
     205        </dict> 
     206        <key>lib/fm/perception.rb</key> 
     207        <dict> 
     208            <key>caret</key> 
     209            <dict> 
     210                <key>column</key> 
     211                <integer>0</integer> 
     212                <key>line</key> 
     213                <integer>66</integer> 
     214            </dict> 
     215            <key>firstVisibleColumn</key> 
     216            <integer>0</integer> 
     217            <key>firstVisibleLine</key> 
     218            <integer>12</integer> 
     219        </dict> 
     220        <key>tests/animatedobject.tests.rb</key> 
     221        <dict> 
     222            <key>caret</key> 
     223            <dict> 
     224                <key>column</key> 
     225                <integer>0</integer> 
     226                <key>line</key> 
     227                <integer>98</integer> 
     228            </dict> 
     229            <key>firstVisibleColumn</key> 
     230            <integer>0</integer> 
     231            <key>firstVisibleLine</key> 
     232            <integer>39</integer> 
    369233        </dict> 
    370234    </dict> 
    371235    <key>openDocuments</key> 
    372236    <array> 
    373         <string>experiments/taxonomy.rb</string> 
    374         <string>lib/fm/organism.rb</string> 
    375         <string>lib/fm/species.rb</string> 
    376         <string>tests/area.tests.rb</string> 
    377         <string>bin/faeriemud.rb</string> 
    378         <string>lib/fm/spirit.rb</string> 
    379         <string>tests/spirit.tests.rb</string> 
    380         <string>tests/simpleverb.tests.rb</string> 
    381237        <string>tests/animatedobject.tests.rb</string> 
    382         <string>lib/fm/entity.rb</string> 
    383238        <string>lib/fm/animatedobject.rb</string> 
    384         <string>lib/fm/event.rb</string> 
     239        <string>lib/fm/composedobject.rb</string> 
     240        <string>experiments/personas.rb</string> 
    385241        <string>lib/fm/character.rb</string> 
    386         <string>lib/fm/area.rb</string> 
    387         <string>lib/fm/locus.rb</string> 
     242        <string>lib/fm/perception.rb</string> 
    388243    </array> 
    389244    <key>showFileHierarchyDrawer</key> 
    390245    <true/> 
    391246    <key>windowFrame</key> 
    392     <string>{{238, 0}, {1009, 1028}}</string> 
     247    <string>{{78, 0}, {1009, 1028}}</string> 
    393248</dict> 
    394249</plist> 
  • trunk/docs/COPYRIGHT

    r212 r260  
    22# == Copyright 
    33#  
    4 # Copyright (c) 2000-2005 The FaerieMUD Consortium. All rights reserved. 
     4# Copyright (c) 2000-2006 The FaerieMUD Consortium. All rights reserved. 
    55#  
    66# While the server this code runs on (MUES) is distributed under an Open Source 
  • trunk/lib/fm/composedobject.rb

    r243 r260  
    1515# structures to an object class to make it capable of being used as a constituent 
    1616# in a ComposedObject instance.  
     17# 
     18# == Synopsis 
     19# 
     20#   class ComposedThingie < FaerieMUD::ComposedObject 
     21#       class Alpha < FaerieMUD::Entity 
     22#           include FaerieMUD::ComposedObject::Constituent 
     23#           def_statistic :foo, :bar 
     24#       end 
     25#       class Beta < FaerieMUD::Entity 
     26#           include FaerieMUD::ComposedObject::Constituent 
     27#           def_statistic :jim, :bob 
     28#       end 
     29#       class Gamma < FaerieMUD::Entity 
     30#           include FaerieMUD::ComposedObject::Constituent 
     31#           def_statistic :foo, :bar 
     32#       end 
     33#    
     34#       def_constituents :alpha => Alpha, :beta => Beta, :gamma => Gamma 
     35#   end 
    1736# 
    1837# == Subversion ID 
     
    377396        # Generate statistic-fetching code for each relevant constituent 
    378397        fetchStats = '' 
    379         constituents.each_with_index {|constituent, i| 
     398        constituents.each_with_index do |constituent, i| 
    380399            fetchStats +=  
    381400                "linear[#{i}] = @constituents[ :#{constituent} ].statistic."\ 
     
    383402                "devel[#{i}] = @constituents[ :#{constituent} ].statistic."\ 
    384403                "developmental.to_f\n" 
    385         } 
     404        end 
    386405 
    387406 
  • trunk/redist

    • Property svn:externals
      •  

        old new  
        22Linguistics svn://svn.FaerieMUD.org/Linguistics/tags/RELEASE_1_0_4 
        33Ruby-WordNet svn://svn.FaerieMUD.org/Ruby-WordNet/tags/SNAPSHOT_20051208 
        4 Test-Unit-Mock svn://svn.FaerieMUD.org/Test-Unit-Mock/tags/RELEASE_0_03 
  • trunk/tests/animatedobject.tests.rb

    r254 r260  
    2121require 'fm/spirit' 
    2222require 'flexmock' 
     23require 'breakpoint' 
     24 
    2325 
    2426### Test case for the FaerieMUD::AnimatedObject class and associated 
     
    2628class FaerieMUD::AnimatedObjectTestCase < FaerieMUD::TestCase 
    2729 
    28     MockSpirit = Test::Unit::MockObject( FaerieMUD::Spirit ) 
    2930 
    30     TestName = "testobj" 
    31     TestDescription = "a testing object" 
    32     TestController = MockSpirit::new 
     31    class TestAnimatedObject < FaerieMUD::AnimatedObject 
     32        class Alpha < FaerieMUD::Entity 
     33            include FaerieMUD::ComposedObject::Constituent 
     34            def_statistic :one, :two 
     35        end 
     36        class Beta < FaerieMUD::Entity 
     37            include FaerieMUD::ComposedObject::Constituent 
     38            def_statistic :three, :four 
     39        end 
     40        class Gamma < FaerieMUD::Entity 
     41            include FaerieMUD::ComposedObject::Constituent 
     42            def_statistic :five, :six 
     43        end 
     44         
     45        def_constituents :alpha => Alpha, :beta => Beta, :gamma => Gamma 
     46    end 
    3347 
    34     ### Set up test case 
    35     def setup 
    36         @constituentClasses = [] 
    37         3.times do |i| 
    38             @constituentClasses.push Class::new( FaerieMUD::Entity ) { 
    39                 include FaerieMUD::ComposedObject::Constituent 
    40                 def_statistic "dev_stat_#{i}".intern, 
    41                 "linear_stat_#{i}".intern 
    42             } 
    43         end 
    4448 
    45         # ComposedObjects require at least 3 constituents for construction 
    46         @constituents = { 
    47             :constituent1   => @constituentClasses[0].new, 
    48             :constituent2   => @constituentClasses[1].new, 
    49             :constituent3   => @constituentClasses[2].new 
    50         } 
    51  
    52         constituentClasses = @constituentClasses 
    53         @derivClass = Class::new( FaerieMUD::AnimatedObject ) { 
    54             def_constituents \ 
    55                 :test1 => constituentClasses[0], 
    56                 :test2 => constituentClasses[1], 
    57                 :test3 => constituentClasses[2] 
    58         } 
    59         @derivObject = @derivClass.new( 
    60             :constituents => @constituents, 
    61             :name => TestName, 
    62             :description => TestDescription, 
    63             :controller => TestController ) 
    64  
    65         if $DEBUG 
    66             [ @constituents.values, @derivObject ].flatten.each do |obj| 
    67                 obj.debugLevel = 5 
    68             end 
    69         end 
    70  
    71         super 
    72     end 
    73  
    74     ### Tear down test case 
    75     def teardown 
    76         @constituentClasses = nil 
    77         @constituents = nil 
    78         super 
    79     end 
    80  
     49    def setup 
     50        @animobj = TestAnimatedObject.new 
     51    end 
    8152 
    8253 
     
    8556    ################################################################# 
    8657 
    87     ### Class should exist 
    88     def test_faeriemud_should_know_about_the_animatedobject_class 
    89         assert defined?( FaerieMUD::AnimatedObject ) 
    90         assert_instance_of Class, FaerieMUD::AnimatedObject 
    91     end 
    92  
    93     ### Subclassing test 
    94     def test_subclasses_should_have_accessable_constituent_methods 
    95         rval, derivClass, derivObject = nil, nil, nil 
    96  
    97         assert_kind_of FaerieMUD::AnimatedObject, @derivObject 
    98          
    99         # Make sure the constructor values were set correctly. 
    100         assert_nothing_raised { rval = @derivObject.name } 
    101         assert_equal rval, TestName 
    102         assert_nothing_raised { rval = @derivObject.description } 
    103         assert_equal rval, TestDescription 
    104         assert_nothing_raised { rval = @derivObject.constituents } 
    105         assert_equal rval, @constituents 
    106         assert_nothing_raised { rval = @derivObject.controller } 
    107         assert_equal rval, TestController 
    108     end 
    109  
    11058    ### Test duplication 
    11159    def test_cloning_an_animated_object_should_clone_its_affinities 
    11260        rval = nil 
     61        @animobj.affinities = {123 => 45} 
    11362 
    114         assert_nothing_raised( "Cloning #{@derivObject.inspect}" ) do 
    115             rval = @derivObject.clone 
     63        assert_nothing_raised( "Cloning #{@animobj.inspect}" ) do 
     64            rval = @animobj.clone 
    11665        end 
    11766 
    118         assert_not_same @derivObject.affinities, rval.affinities 
    119         assert_equal @derivObject.affinities, rval.affinities 
     67        assert_not_same @animobj.affinities, rval.affinities 
     68        assert_equal @animobj.affinities, rval.affinities 
    12069    end 
     70 
    12171 
    12272    ### Cloning an AnimatedObject should copy its description and append 
     
    12474    def test_cloning_an_animated_object_should_copy_its_description_and_append_cloned 
    12575        rval = nil 
     76        @animobj.description = "something" 
    12677 
    127         assert_nothing_raised( "Cloning #{@derivObject.inspect}" ) do 
    128             rval = @derivObject.clone 
     78        assert_nothing_raised( "Cloning #{@animobj.inspect}" ) do 
     79            rval = @animobj.clone 
    12980        end 
    13081 
    13182        assert_match /\(Cloned\)/, rval.description 
     83        assert_equal "something", rval.description["something"] 
    13284    end 
     85 
    13386 
    13487    ### Cloning an AnimatedObject should copy its name and append "(Cloned)" to it 
    13588    def test_cloning_an_animated_object_should_copy_its_name_and_prepend_cloned 
    13689        rval = nil 
     90        @animobj.name = "something" 
    13791 
    138         assert_nothing_raised( "Cloning #{@derivObject.inspect}" ) do 
    139             rval = @derivObject.clone 
     92        assert_nothing_raised( "Cloning #{@animobj.inspect}" ) do 
     93            rval = @animobj.clone 
    14094        end 
    14195 
    14296        assert_match /Clone of/, rval.name 
     97        assert_equal "something", rval.name["something"] 
    14398    end 
    14499 
    145     ### Events received by the constituents should be sent to the controlling 
    146     ## spirit 
    147     def test_constituents_should_send_perceptual_events_to_the_perception_object 
    148         rval = nil 
    149  
    150         assert_respond_to @derivObject.constituent1, :handlePerceptualEvent 
    151          
    152         FlexMock.use( "animated event" ) do |animEvent| 
    153             animEvent.should_receive( :class ).returns( FaerieMUD::PerceptualEvent ) 
    154             animEvent.should_receive( :handlerNames ).returns( %w[handlePerceptualEvent] ) 
    155              
    156             assert_nothing_raised do 
    157                 @derivObject.constituent1.handleEvent( animEvent ) 
    158             end 
    159              
    160         end 
    161     end 
    162100end 
    163101 
  • trunk/tests/lib/fmtestcase.rb

    r250 r260  
    5858 
    5959require "test/unit" 
    60 require "test/unit/mock" 
    61  
    6260require "fm" 
    63 require 'fmmocks' 
    6461 
    6562 
  • trunk/tests/perception.tests.rb

    r250 r260  
    2222### This test suite tests the FaerieMUD::Perception class of FaerieMUD. 
    2323class FaerieMUD::PerceptionTestCase < FaerieMUD::TestCase 
    24     include FaerieMUD::Mocks 
    25  
    26     def setup 
    27         @mockanim = MockAnimatedObject.new 
    28         @perception = FaerieMUD::Perception.new( @mockanim ) 
    29     end 
    30  
    3124 
    3225