From fe6b50e0383af01023f010b26cd1cf2fa2f3c9c4 Mon Sep 17 00:00:00 2001 From: Dan Bode Date: Mon, 21 Jun 2010 09:30:30 -0700 Subject: just getting started with unit tests for sudo. --- spec/lib/matchers.rb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 spec/lib/matchers.rb (limited to 'spec/lib/matchers.rb') diff --git a/spec/lib/matchers.rb b/spec/lib/matchers.rb new file mode 100644 index 0000000..57a35e6 --- /dev/null +++ b/spec/lib/matchers.rb @@ -0,0 +1,30 @@ +module Matchers + + class AutoRequireMatcher + def initialize(*expected) + @expected = expected + end + + def matches?(resource) + resource_type = resource.class + configuration = resource_type.instance_variable_get(:@autorequires) || {} + @autorequires = configuration.inject([]) do |memo, (param, block)| + memo + resource.instance_eval(&block) + end + @autorequires.include?(@expected) + end + def failure_message_for_should + "expected resource autorequires (#{@autorequires.inspect}) to include #{@expected.inspect}" + end + def failure_message_for_should_not + "expected resource autorequires (#{@autorequires.inspect}) to not include #{@expected.inspect}" + end + end + + # call-seq: + # autorequire :logical_volume, 'mylv' + def autorequire(type, name) + AutoRequireMatcher.new(type, name) + end + +end -- cgit v1.2.3