Sha256: 37117b1e4ddfc939ece26c5de181bdb75b1cfefe6831498d5fe0a299214e70a3

Contents?: true

Size: 1.51 KB

Versions: 4

Compression:

Stored size: 1.51 KB

Contents

$LOAD_PATH.unshift File.expand_path('..', File.dirname(__FILE__))
require 'roby/test/common'
require 'roby/test/tasks/simple_task'

class TC_PlannedBy < Test::Unit::TestCase
    include Roby::Test

    PlannedBy = Roby::TaskStructure::PlannedBy
    SimpleTask = Roby::Test::SimpleTask
    def test_replace
	task, p1, p2 = prepare_plan :discover => 3
	task.planned_by p1

	assert_raises(ArgumentError) { task.planned_by p2 }
	assert(task.child_object?(p1, PlannedBy))
	assert(!task.child_object?(p2, PlannedBy))

	assert_nothing_raised { task.planned_by p2, :replace => true }
	assert(!task.child_object?(p1, PlannedBy))
	assert(task.child_object?(p2, PlannedBy))
    end

    def test_check
	task = Roby::Task.new
	planner = Roby::Test::SimpleTask.new
	task.planned_by planner
	plan.permanent(task)

	assert_equal([], PlannedBy.check_planning(plan))
	planner.start!
	assert_equal([], PlannedBy.check_planning(plan))
	planner.success!
	assert_equal([], PlannedBy.check_planning(plan))

	task.remove_planning_task planner
	planner = Roby::Test::SimpleTask.new
	task.planned_by planner

	assert_equal([], PlannedBy.check_planning(plan))
	planner.start!
	assert_equal([], PlannedBy.check_planning(plan))
	planner.failed!

	error = *PlannedBy.check_planning(plan)
	assert_kind_of(Roby::PlanningFailedError, error)
	assert_equal(planner, error.failed_task)
	assert_equal(task, error.planned_task)
	assert_equal(planner.terminal_event, error.failed_event)

	# Clear the planned task to make test teardown happy
	plan.remove_object(task)
    end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
roby-0.7.2 test/relations/test_planned_by.rb
roby-0.7.1 test/relations/test_planned_by.rb
roby-0.7 test/relations/test_planned_by.rb
roby-0.7.3 test/relations/test_planned_by.rb