class TestSearchWorddsDB

Public Instance Methods

test_swdb() click to toggle source
# File vendor/qwik/lib/qwik/db-searchwords.rb, line 136
def test_swdb
  # setup
  config = Qwik::Config.new
  config.update Qwik::Config::DebugConfig
  config.update Qwik::Config::TestConfig
  path = '.test/'.path
  path.setup
  db = Qwik::SearchWordsDB.new(path,config)

  # put a word
  db.put(["foo"])
  ems = db.get
  assert_equal 1, ems.size
  assert_equal :foo, ems[0].word
  assert_equal 1, ems[0].count

  # put the same word
  db.put("foo")
  ems = db.get
  assert_equal 1, ems.size
  assert_equal :foo, ems[0].word
  assert_equal 2, ems[0].count

  # check if correctly saved and read
  db2 = Qwik::SearchWordsDB.new(path,config)
  ems = db2.get
  assert_equal 1, ems.size
  assert_equal :foo, ems[0].word
  assert_equal 2, ems[0].count

  # put the different word
  db.put("bar")
  ems = db.get
  assert_equal 2, ems.size
  assert_equal :bar, ems[0].word
  assert_equal 1, ems[0].count
  assert_equal :foo, ems[1].word
  assert_equal 2, ems[1].count

  # check if correctly saved and read
  db2 = Qwik::SearchWordsDB.new(path,config)
  ems = db2.get
  assert_equal 2, ems.size
  assert_equal :bar, ems[0].word
  assert_equal 1, ems[0].count
  assert_equal :foo, ems[1].word
  assert_equal 2, ems[1].count

  # put Jpanaese name
  word = "ほげ"
  db.put(word)
  ems = db.get
  assert_equal 3, ems.size
  assert_equal word.to_sym, ems[0].word
  assert_equal 1, ems[0].count
  assert_equal :bar, ems[1].word
  assert_equal 1, ems[1].count
  assert_equal :foo, ems[2].word
  assert_equal 2, ems[2].count

  # check if correctly saved and read
  db2 = Qwik::SearchWordsDB.new(path,config)
  ems = db2.get
  assert_equal 3, ems.size
  assert_equal word.to_sym, ems[0].word
  assert_equal 1, ems[0].count
  assert_equal :bar, ems[1].word
  assert_equal 1, ems[1].count
  assert_equal :foo, ems[2].word
  assert_equal 2, ems[2].count

  db2.put("bar")
  ems = db2.get
  assert_equal 3, ems.size
  assert_equal :bar, ems[0].word
  assert_equal 2, ems[0].count
  assert_equal word.to_sym, ems[1].word
  assert_equal 1, ems[1].count
  assert_equal :foo, ems[2].word
  assert_equal 2, ems[2].count

  #test deleation
  db2.delete(word)
  ems = db2.get
  assert_equal 2, ems.size
  assert_equal :bar, ems[0].word
  assert_equal 2, ems[0].count
  assert_equal :foo, ems[1].word
  assert_equal 2, ems[1].count

  # check if correctly saved and read
  db3 = Qwik::SearchWordsDB.new(path,config)
  ems = db3.get
  assert_equal 2, ems.size
  assert_equal :bar, ems[0].word
  assert_equal 2, ems[0].count
  assert_equal :foo, ems[1].word
  assert_equal 2, ems[1].count

  path.teardown
end