Sha256: 32bc79ad6aac915579eb726c92a3bd6624bfff060d29aac6b74ef84d9e9d217e

Contents?: true

Size: 1.58 KB

Versions: 3

Compression:

Stored size: 1.58 KB

Contents

require 'test_helper'

class TokenizerTest < ActiveSupport::TestCase
  test 'extract terms' do
    terms = MagickColumns::Tokenizer.new('a b').extract_terms
    assert_equal [[{term: 'a'}, {term: 'b'}]], terms
    
    terms = MagickColumns::Tokenizer.new('a or b').extract_terms
    assert_equal [[{term: 'a'}], [{term: 'b'}]], terms
    
    terms = MagickColumns::Tokenizer.new('long_abc').extract_terms
    assert_equal [[{term: 'long_abc'}]], terms
    
    terms = MagickColumns::Tokenizer.new('  ').extract_terms
    assert_equal [], terms
  end
  
  test 'clean query' do
    query = MagickColumns::Tokenizer.new('a b').clean_query
    assert_equal 'a b', query
    
    query = MagickColumns::Tokenizer.new('and a b').clean_query
    assert_equal 'a b', query
    
    query = MagickColumns::Tokenizer.new('  and  and a b or or  ').clean_query
    assert_equal 'a b', query
  end
  
  test 'split in terms' do
    terms = MagickColumns::Tokenizer.new.split_term_in_terms('a')
    assert_equal [{term: 'a'}], terms
    
    terms = MagickColumns::Tokenizer.new.split_term_in_terms('from a')
    assert_equal [{term: 'a', operator: '>='}], terms
    
    terms = MagickColumns::Tokenizer.new.split_term_in_terms('until a')
    assert_equal [{term: 'a', operator: '<='}], terms
    
    terms = MagickColumns::Tokenizer.new.split_term_in_terms('until today')
    assert_equal [{term: Date.today.to_s(:db), operator: '<='}], terms
    
    terms = MagickColumns::Tokenizer.new.split_term_in_terms('from a to b')
    assert_equal(
      [{term: 'a', operator: '>='}, {term: 'b', operator: '<='}], terms
    )
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
magick_columns-0.0.4 test/tokenizer_test.rb
magick_columns-0.0.3 test/tokenizer_test.rb
magick_columns-0.0.2 test/tokenizer_test.rb