test/test_pdd.rb in pdd-0.8 vs test/test_pdd.rb in pdd-0.9
- old
+ new
@@ -32,15 +32,11 @@
# Copyright:: Copyright (c) 2014 Yegor Bugayenko
# License:: MIT
class TestPDD < Minitest::Test
def test_basic
Dir.mktmpdir 'test' do |dir|
- opts = Slop.parse ['-v', '-s', dir, '-e', '**/*.png'] do
- on 'v', 'verbose'
- on 's', 'source', argument: :required
- on 'e', 'exclude', as: Array, argument: :required
- end
+ opts = opts(['-v', '-s', dir, '-e', '**/*.png', '-r', 'max-estimate:15'])
File.write(File.join(dir, 'a.txt'), '@todo #55 hello!')
matches(
Nokogiri::XML::Document.parse(PDD::Base.new(opts).xml),
[
'/processing-instruction("xml-stylesheet")[contains(.,".xsl")]',
@@ -48,9 +44,28 @@
'/puzzles/@date',
'/puzzles[count(puzzle)=1]',
'/puzzles/puzzle[file="a.txt"]'
]
)
+ end
+ end
+
+ def test_rules_failure
+ Dir.mktmpdir 'test' do |dir|
+ opts = opts(['-v', '-s', dir, '-e', '**/*.png', '-r', 'min-estimate:30'])
+ File.write(File.join(dir, 'a.txt'), '@todo #90 hello!')
+ assert_raises RuntimeError do
+ PDD::Base.new(opts).xml
+ end
+ end
+ end
+
+ def opts(args)
+ Slop.parse args do
+ on 'v', 'verbose'
+ on 's', 'source', argument: :required
+ on 'e', 'exclude', as: Array, argument: :required
+ on 'r', 'rule', as: Array, argument: :required
end
end
def matches(xml, xpaths)
xpaths.each do |xpath|