diff options
Diffstat (limited to 'test/reline/test_reline_key.rb')
-rw-r--r-- | test/reline/test_reline_key.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/test/reline/test_reline_key.rb b/test/reline/test_reline_key.rb new file mode 100644 index 0000000000..7f9a11394a --- /dev/null +++ b/test/reline/test_reline_key.rb @@ -0,0 +1,54 @@ +require_relative 'helper' +require "reline" + +class Reline::TestKey < Reline::TestCase + def setup + Reline.test_mode + end + + def teardown + Reline.test_reset + end + + def test_match_key + assert(Reline::Key.new(1, 2, false).match?(Reline::Key.new(1, 2, false))) + assert(Reline::Key.new(1, 2, false).match?(Reline::Key.new(nil, 2, false))) + assert(Reline::Key.new(1, 2, false).match?(Reline::Key.new(1, 2, nil))) + + assert(Reline::Key.new(nil, 2, false).match?(Reline::Key.new(nil, 2, false))) + assert(Reline::Key.new(1, nil, false).match?(Reline::Key.new(1, nil, false))) + assert(Reline::Key.new(1, 2, nil).match?(Reline::Key.new(1, 2, nil))) + + assert(Reline::Key.new(nil, 2, false).match?(Reline::Key.new(nil, 2, false))) + assert(Reline::Key.new(1, nil, false).match?(Reline::Key.new(1, nil, false))) + assert(Reline::Key.new(1, 2, nil).match?(Reline::Key.new(1, 2, nil))) + + assert(!Reline::Key.new(1, 2, false).match?(Reline::Key.new(3, 1, false))) + assert(!Reline::Key.new(1, 2, false).match?(Reline::Key.new(1, 3, false))) + assert(!Reline::Key.new(1, 2, false).match?(Reline::Key.new(1, 3, true))) + end + + def test_match_integer + assert(Reline::Key.new(1, 2, false).match?(2)) + assert(Reline::Key.new(nil, 2, false).match?(2)) + assert(Reline::Key.new(1, nil, false).match?(1)) + + assert(!Reline::Key.new(1, 2, false).match?(1)) + assert(!Reline::Key.new(1, nil, false).match?(2)) + assert(!Reline::Key.new(nil, nil, false).match?(1)) + end + + def test_match_symbol + assert(Reline::Key.new(:key1, :key2, false).match?(:key2)) + assert(Reline::Key.new(:key1, nil, false).match?(:key1)) + + assert(!Reline::Key.new(:key1, :key2, false).match?(:key1)) + assert(!Reline::Key.new(:key1, nil, false).match?(:key2)) + assert(!Reline::Key.new(nil, nil, false).match?(:key1)) + end + + def test_match_other + assert(!Reline::Key.new(:key1, 2, false).match?("key1")) + assert(!Reline::Key.new(nil, nil, false).match?(nil)) + end +end |