Sha256: dd83188bdc32472823e453aeb3160a507dffd830abeb95646593ff5ad7465c80

Contents?: true

Size: 1.43 KB

Versions: 9

Compression:

Stored size: 1.43 KB

Contents

require File.join(File.dirname(__FILE__), '/../../spec_helper')

describe Damaging do
  
  before(:each) do
    @window = stub :window, :things => []
  end
  
  context 'damage given as block' do
    before(:each) do
      @damaging = test_class_with(Damaging) do
        damage { 10 + 10 }
      end.new @window
    end
    it "should define a method lifetime which returns the result of the block" do
      @damaging.damage.should == 20
    end
  end
  context 'damage given normally' do
    before(:each) do
      @damaging = test_class_with(Damaging) do
        damage 30
      end.new @window
    end
    it "should define a method damage which returns the set value" do
      @damaging.damage.should == 30
    end
  end
  context 'no damage given – what now?' do
    before(:each) do
      @damaging_class = test_class_with Damaging
    end
    it "should raise a DamageMissingError" do
      lambda { @damaging_class.new(@window) }.should raise_error(Damaging::DamageMissingError)
    end
    it "should raise with the right message" do
      lambda { @damaging_class.new(@window) }.should raise_error(Damaging::DamageMissingError, <<-MESSAGE
        
        In a Damaging thing, you need to define method
          damage damage = nil, &block
        with params
          damage 13 # some value
        or
          damage { 13 + rand(7) } # some block
        to define how much damage the thing does.
        
      MESSAGE
      )
    end
  end
  
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
gosu_extensions-0.3.8 spec/lib/traits/damaging_spec.rb
gosu_extensions-0.3.7 spec/lib/traits/damaging_spec.rb
gosu_extensions-0.3.6 spec/lib/traits/damaging_spec.rb
gosu_extensions-0.3.5 spec/lib/traits/damaging_spec.rb
gosu_extensions-0.3.4 spec/lib/traits/damaging_spec.rb
gosu_extensions-0.3.3 spec/lib/traits/damaging_spec.rb
gosu_extensions-0.3.2 spec/lib/traits/damaging_spec.rb
gosu_extensions-0.3.1 spec/lib/traits/damaging_spec.rb
gosu_extensions-0.3.0 spec/lib/traits/damaging_spec.rb