require 'spec_helper'
RSpec.describe('Expression#to_h') do
specify('Root#to_h') do
root = RP.parse('abc')
hash = root.to_h
expect(token: :root, type: :expression, text: 'abc', starts_at: 0, length: 3, quantifier: nil, options: {}, level: nil, set_level: nil, conditional_level: nil, expressions: [{ token: :literal, type: :literal, text: 'abc', starts_at: 0, length: 3, quantifier: nil, options: {}, level: 0, set_level: 0, conditional_level: 0 }]).to eq hash
end
specify('Quantifier#to_h') do
root = RP.parse('a{2,4}')
exp = root.expressions.at(0)
hash = exp.quantifier.to_h
expect(max: 4, min: 2, mode: :greedy, text: '{2,4}', token: :interval).to eq hash
end
specify('Conditional#to_h') do
root = RP.parse('(?a)(?()b|c)', 'ruby/2.0')
expect { root.to_h }.not_to(raise_error)
end
end