Sha256: 8d52e86ad91b020913f0c88bed3226ffcf3d81f6a92bb44a0066db07ab4f8854

Contents?: true

Size: 1.32 KB

Versions: 2

Compression:

Stored size: 1.32 KB

Contents

require 'test/unit'
require 'webgen/cache'

class TestCache < Test::Unit::TestCase

  def setup
    @cache = Webgen::Cache.new
  end

  def dump_and_restore
    data = @cache.dump
    setup
    @cache.restore(data)
  end

  def test_standard_cache
    @cache[:key] = :value
    assert_equal(:value, @cache[:key])
    dump_and_restore
    assert_equal(:value, @cache[:key])
    @cache[:key] = :newvalue
    assert_equal(:value, @cache[:key])
    dump_and_restore
    assert_equal(:newvalue, @cache[:key])
  end

  def test_permanent_cache
    @cache.permanent[:key] = :value
    assert_equal(:value, @cache.permanent[:key])
    dump_and_restore
    assert_equal(:value, @cache.permanent[:key])
  end

  def test_volatile_cache
    @cache.volatile[:key] = :value
    assert_equal(nil, @cache.volatile[:key])

    obj = @cache.instance('Hash')
    assert_equal(obj, @cache.instance('Hash'))

    @cache.enable_volatile_cache
    @cache.volatile[:key] = :value
    assert_equal(:value, @cache.volatile[:key])
  end

  def test_instance
    obj = @cache.instance('Hash')
    assert_kind_of(Hash, obj)
    assert_equal(obj, @cache.instance('Hash'))
    @cache.instance('Array')
    assert_equal(['Hash', 'Array'], @cache.permanent[:classes])
    dump_and_restore
    @cache.enable_volatile_cache
    assert_not_nil(@cache.volatile[:classes]['Hash'])
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
webgen-0.5.0 test/test_cache.rb
webgen-0.5.1 test/test_cache.rb