Sha256: 2aa19ab7a231afef4b26440511e95e31ee7243b5bed4fa841ef670d18f486cd5

Contents?: true

Size: 1.34 KB

Versions: 65

Compression:

Stored size: 1.34 KB

Contents

require "spec_helper"

# define a custom subclass of the task to make sure classes are copied
class CustomTestTask < SC::Buildfile::Task
  attr_accessor :test_property
end

describe SC::Buildfile::Task, 'dup' do

  before do
    @app = SC::Buildfile.define # used to hook a buildtask
    @task = SC::Buildfile::Task.new(:foo, @app)
  end

  it "should clone actions and prerequisites" do
    @app.define! do
      task :bar => :foo do
        :test_action
      end
    end
    @task = @app.lookup :bar
    @task.actions.size.should eql(1) # check precondition
    @task.prerequisites.size.should eql(1) # check precondition

    action = @task.actions.first
    pre = @task.prerequisites.first

    task2 = @task.dup
    task2.actions.size.should eql(1)
    task2.actions.first.should eql(action)

    task2.prerequisites.size.should eql(1)
    task2.prerequisites.first.should eql(pre)

  end

  it "should take passed application property if defined" do
    app2 = SC::Buildfile.define
    task2 = @task.dup(app2)
    task2.application.should eql(app2)
  end

  it "should clone application property is not defined" do
    @task.dup.application.should eql(@app)
  end

  it "should duplicate any ivars from subclasses" do
    @task = CustomTestTask.new :foo, @app
    @task.test_property = :bar

    task2 = @task.dup
    task2.test_property.should eql(:bar)
  end

end

Version data entries

65 entries across 65 versions & 1 rubygems

Version Path
sproutcore-1.11.0 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.11.0.rc3 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.11.0.rc2 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.11.0.rc1 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.10.3.1 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.10.2 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.10.1 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.10.0 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.10.0.rc.3 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.10.0.rc.2 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.10.0.rc.1 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.9.2 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.9.1 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.9.0 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.8.2.1 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.8.1 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.8.0 spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.7.1.beta-java spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.7.1.beta spec/lib/buildfile/task/dup_spec.rb
sproutcore-1.6.0.1-java spec/lib/buildfile/task/dup_spec.rb