Sha256: 5f6aad12989501f5abbb0b85563f8a48a10b0ff0866b0caf52762693248b78ea
Contents?: true
Size: 1.71 KB
Versions: 6
Compression:
Stored size: 1.71 KB
Contents
dir = File.dirname(__FILE__) require "#{dir}/../test_helper" require "#{dir}/target" describe "An instance of a hand-built Bar parser" do def setup @parser = Target.new end it "can parse matching input, associating it with the correct node class and that can respond to methods from the inlined module" do result = @parser.parse('abce') result.should be_success result.should be_an_instance_of(Target::Bar) result.foo.should == 'foo' end it "can parse matching input that exercises foo's positive closure" do @parser.parse('abcbcbce').should be_success end it "can parse matching input that exercises foo's second alternative" do @parser.parse('abde').should be_success end it "fails to parse ae and returns the failure to match 'b' as its sole nested failure" do result = @parser.parse('ae') result.should be_failure result.nested_failures.size.should == 1 nested_failure = result.nested_failures.first nested_failure.index.should == 1 nested_failure.expected_string.should == 'b' end it "fails to parse abe and returns the failure to match 'c' or 'd' as its nested failures" do result = @parser.parse('abe') result.should be_failure result.nested_failures.size.should == 2 nested_failure = result.nested_failures[0] nested_failure.index.should == 2 nested_failure.expected_string.should == 'c' nested_failure = result.nested_failures[1] nested_failure.index.should == 2 nested_failure.expected_string.should == 'd' end it "parses the optional expression or epsilon" do @parser.root = :optional @parser.parse('foo').should be_success @parser.parse('').should be_success end end
Version data entries
6 entries across 6 versions & 1 rubygems