class TestWikiDB

Public Instance Methods

test_all() click to toggle source
# File vendor/qwik/lib/qwik/page-wikidb.rb, line 176
def test_all
  page = @site.create_new
  wdb  = Qwik::WikiDB.new(page)

  # test_exist?
  eq false, !!wdb.exist?('k')
  wdb.add('k', 'v')
  eq ",k,v\n", page.load

  eq true, !!wdb.exist?('k')
  eq ['v'], wdb['k']
  eq 'v', wdb['k'][0]
  eq false, wdb['k'][0].frozen?

  # test_hash
  eq({'k'=>['v']}, wdb.hash)
  wdb.add('k', 'v2')
  eq ['v2'], wdb['k']       # can get second value

  # test_remove
  eq true,  wdb.remove('k') # remove
  eq false, wdb.remove('k') # fail to remove

  # test_add
  eq false, !!wdb.exist?('k')
  wdb.add('k', 'v1', 'v2')
  eq true,  !!wdb.exist?('k')
  eq ['v1', 'v2'], wdb['k']
  eq({'k'=>['v1', 'v2']}, wdb.hash)
  eq true,  wdb.remove('k') # remove
  eq false, wdb.remove('k') # fail to remove

  wdb.add('a', 'b')
  wdb.add('c', 'd')
  eq({'a'=>['b'], 'c'=>['d']}, wdb.hash)

  # test_each
  wdb.each {|k, v|
    eq false, k.frozen?
    assert_instance_of(Array, v)
  }

  eq [['a', ['b']], ['c', ['d']]], wdb.array
  wdb.array.each {|name, args|
    args = args.dup
    t = args.shift
  }
  eq [['a', ['b']], ['c', ['d']]], wdb.array

  # test_nil
  page = @site.create_new
  wdb = Qwik::WikiDB.new(page)
  eq false, !!wdb.exist?('k')
  wdb.add('k', nil, 'v2')
  eq ",k,,v2\n",  page.load
  eq ['', 'v2'], wdb['k']
end
test_class_method() click to toggle source
# File vendor/qwik/lib/qwik/page-wikidb.rb, line 151
def test_class_method
  c = Qwik::WikiDB

  # test_parse
  eq [["k", ["v"]]], c.parse(',k,v')
  eq [["k", ["v"]]], c.parse('|k|v')
  eq [["k", "v"]], c.parse(':k:v')
  eq [["k", "v"]], c.parse(':k: v')
  eq [["k", "v"]], c.parse(':k:     v')

  # test_encode_line
  eq ',k,v', c.encode_line('k', 'v')
  eq ',k,v1,v2', c.encode_line('k', ['v1', 'v2'])
  eq ',k,v1,v2', c.encode_line('k', 'v1', 'v2')
  eq ',k,,v2', c.encode_line('k', nil, 'v2')
end
test_colon() click to toggle source
# File vendor/qwik/lib/qwik/page-wikidb.rb, line 168
def test_colon
  page = @site.create_new
  wdb  = Qwik::WikiDB.new(page)
  page.store(':k: v')
  eq true, !!wdb.exist?('k')
  eq 'v', wdb['k']
end