Sha256: 0404491b18e8044961001a5a479879501a85471546b44e3194d3f63fd1eed984

Contents?: true

Size: 1.33 KB

Versions: 18

Compression:

Stored size: 1.33 KB

Contents

require 'spec_helper'
require 'cxxproject'
require 'cxxproject/ext/rake_listener.rb'
require 'cxxproject/utils/cleanup'

describe Rake::Task do

  before(:each) do
    Cxxproject::Utils.cleanup_rake
  end
  after(:each) do
    Cxxproject::Utils.cleanup_rake
  end


 it "should call a listener for prerequisites and execute" do
    task "mypre"
    t = task "test" => "mypre"

    l = mock
    Rake::add_listener(l)

    l.should_receive(:before_execute).with('mypre')
    l.should_receive(:after_execute).with('mypre')
    l.should_receive(:before_prerequisites).with('mypre')
    l.should_receive(:after_prerequisites).with('mypre')
    l.should_receive(:before_prerequisites).with('test')
    l.should_receive(:after_prerequisites).with('test')
    l.should_receive(:before_execute).with('test')
    l.should_receive(:after_execute).with('test')
    t.invoke

    Rake::remove_listener(l)

    t.invoke
  end

  class DummyListener
    def calls
      @calls ||= []
    end
    def after_execute(name)
      c = calls
      c << name
    end
  end

  it "should work with only half implemented rake-listener" do
    task "mypre"
    t = task "test" => "mypre"
    l = DummyListener.new
    Rake::add_listener(l)
    t.invoke
    Rake::remove_listener(l)
    l.calls.should eq(['mypre', 'test'])
  end

end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
cxxproject-0.5.76 spec/rake_listener_ext_spec.rb
cxxproject-0.5.75 spec/rake_listener_ext_spec.rb
cxxproject-0.5.74 spec/rake_listener_ext_spec.rb
cxxproject-0.5.73 spec/rake_listener_ext_spec.rb
cxxproject-0.5.72 spec/rake_listener_ext_spec.rb
cxxproject-0.5.71 spec/rake_listener_ext_spec.rb
cxxproject-0.5.70 spec/rake_listener_ext_spec.rb
cxxproject-0.5.69 spec/rake_listener_ext_spec.rb
cxxproject-0.5.68 spec/rake_listener_ext_spec.rb
cxxproject-0.5.67 spec/rake_listener_ext_spec.rb
cxxproject-0.5.66 spec/rake_listener_ext_spec.rb
cxxproject-0.5.65 spec/rake_listener_ext_spec.rb
cxxproject-0.5.64 spec/rake_listener_ext_spec.rb
cxxproject-0.5.63 spec/rake_listener_ext_spec.rb
cxxproject-0.5.62 spec/rake_listener_ext_spec.rb
cxxproject-0.5.61 spec/rake_listener_ext_spec.rb
cxxproject-0.5.60 spec/rake_listener_ext_spec.rb
cxxproject-0.5.59 spec/rake_listener_ext_spec.rb