summaryrefslogtreecommitdiff
path: root/test/lib/dslkeywords/dependency_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/lib/dslkeywords/dependency_test.rb')
-rw-r--r--test/lib/dslkeywords/dependency_test.rb50
1 files changed, 44 insertions, 6 deletions
diff --git a/test/lib/dslkeywords/dependency_test.rb b/test/lib/dslkeywords/dependency_test.rb
index 324a756..aeb2790 100644
--- a/test/lib/dslkeywords/dependency_test.rb
+++ b/test/lib/dslkeywords/dependency_test.rb
@@ -5,25 +5,63 @@ require_relative '../../../lib/dsl'
class RCMDependencyTest < Minitest::Test
def test_depends_on
+ foo = nil
+ bar = nil
+ baz = nil
+
configure_from_scratch do
- notify 'foo' do
- depends_on notify['bar'], notify['baz']
+ foo = notify 'foo' do
+ depends_on notify 'bar', 'baz'
:foo_message
end
- notify 'bar'
+ bar = notify 'bar'
- notify 'baz' do
- depends_on notify['bar']
+ baz = notify 'baz' do
+ depends_on notify 'bar'
:baz_message
end
end
+
+ assert_equal 2, foo.depends_on.count
+ assert foo.depends_on?("notify('bar')", "notify('baz')")
+
+ assert_equal 0, bar.depends_on.count
+ refute bar.depends_on?('foo')
+
+ assert_equal 1, baz.depends_on.count
+ assert baz.depends_on?("notify('bar')")
end
def test_depends_on_invalid_resource
assert_raises(RCM::ResourceDependencies::NoSuchResourceType) do
configure_from_scratch do
- notify { depends_on invalid['baz'] }
+ notify { depends_on invalid('baz') }
+ end
+ end
+ end
+
+ def test_depends_on_non_existant_dependency
+ assert_raises(RCM::Resource::NoSuchResourceObject) do
+ configure_from_scratch do
+ notify { depends_on notify('nonexistant') }
+ end
+ end
+ end
+
+ def test_dependency_loop
+ assert_raises(RCM::DependencyEvaluator::DependencyLoop) do
+ configure_from_scratch do
+ notify('loop') { depends_on notify('loop') }
+ end
+ end
+ end
+
+ def test_dependency_loop_indirect
+ assert_raises(RCM::DependencyEvaluator::DependencyLoop) do
+ configure_from_scratch do
+ notify('loop') { depends_on notify('pool') }
+ notify('pool') { depends_on notify('loop') }
end
end
end