summaryrefslogtreecommitdiffstats
path: root/test/util
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-04-23 18:01:36 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-04-23 18:01:36 +0000
commit8d3673d5df4f09909f092c5cb42ef8870762db1a (patch)
tree0451e5bfe2c6bbbbc2b62a4c6a80807ff403f200 /test/util
parenta478ed2b5beadd1124c375ced21a9343dc6c591a (diff)
downloadpuppet-8d3673d5df4f09909f092c5cb42ef8870762db1a.tar.gz
puppet-8d3673d5df4f09909f092c5cb42ef8870762db1a.tar.xz
puppet-8d3673d5df4f09909f092c5cb42ef8870762db1a.zip
Adding a :block_eval option to FileRecords in FileParsing, so ParsedFile providers can have records just define a bunch of methods at once, rather than using lots of hooks. This is cleaner when custom parse and generate methods are used.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2407 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'test/util')
-rwxr-xr-xtest/util/fileparsing.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/util/fileparsing.rb b/test/util/fileparsing.rb
index c81c9e006..9a892c383 100755
--- a/test/util/fileparsing.rb
+++ b/test/util/fileparsing.rb
@@ -647,6 +647,30 @@ class TestUtilFileRecord < Test::Unit::TestCase
assert_equal(line.upcase, record.process(line),
"Record did not process line correctly")
end
+
+ # Make sure we can declare that we want the block to be instance-eval'ed instead of
+ # defining the 'process' method.
+ def test_instance_block
+ record = nil
+ assert_nothing_raised("Could not pass a block when creating record") do
+ record = Record.new(:record, :block_eval => :instance, :fields => %w{one}) do
+ def process(line)
+ line.upcase
+ end
+
+ def to_line(details)
+ details.upcase
+ end
+ end
+ end
+
+ assert(record.respond_to?(:process), "Block was not instance-eval'ed and process was not defined")
+ assert(record.respond_to?(:to_line), "Block was not instance-eval'ed and to_line was not defined")
+
+ line = "some text"
+ assert_equal(line.upcase, record.process(line), "Instance-eval'ed record did not call :process correctly")
+ assert_equal(line.upcase, record.to_line(line), "Instance-eval'ed record did not call :to_line correctly")
+ end
end
# $Id$