Sha256: adfd3cdc550e8f7da5d19ee39b54ec3299caaae44936d94d7309fd52e81a34bb

Contents?: true

Size: 1.63 KB

Versions: 1

Compression:

Stored size: 1.63 KB

Contents

$:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'lib', 'buildmaster')

require 'project/release'
require 'spec'

module BuildMaster

describe Release do
  it 'run tasks in order' do
    mock = mock('tasks')
    mock.should_receive(:one).once.ordered
    mock.should_receive(:two).once.ordered
    release = Release.new
    release.task('one') {mock.one}
    release.task('two') {mock.two}
    release.execute
  end
  
  it 'run task from specified step in order' do
    mock = mock('tasks')
    mock.should_receive(:two).once.ordered
    mock.should_receive(:three).once.ordered
    release = Release.new
    release.task('one') {mock.one}
    release.task('two') {mock.two}
    release.task('three') {mock.three}
    release.execute('two')
  end
  
  it 'run tasks between two' do
    mock = mock('tasks')
    mock.should_receive(:two).once.ordered
    mock.should_receive(:three).once.ordered
    release = Release.new
    release.task('one') {mock.one}
    release.task('two') {mock.two}
    release.task('three') {mock.three}
    release.task('four') {mock.four}
    release.execute('two', 'three')
  end
  
  it 'don\'t allow duplicate tasks' do
    release = Release.new
    release.task('one') {}
    Proc.new {release.task('one')}.should raise_error(RuntimeError)
  end
  
  it 'raise error for task not found' do
    release = Release.new
    release.task('two') {}
    Proc.new {release.execute('one')}.should raise_error(RuntimeError)
  end
  
  it 'raise error for empty task' do
    release = Release.new
    Proc.new {release.execute}.should raise_error(RuntimeError)
  end
  
end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
BuildMaster-1.1.9 test/buildmaster/project/tc_release.rb