Sha256: cb77d9831c79e0a36d249cdc59fd92e25881d789026aa66cec64282c0cf796d4

Contents?: true

Size: 1.13 KB

Versions: 13

Compression:

Stored size: 1.13 KB

Contents

# frozen_string_literal: true

require_relative "../test_helper"
require "logster/cache"

class TestCache < Minitest::Test
  def setup
    @cache = Logster::Cache.new(5)
  end

  def test_cache_works
    prc = Proc.new { |key, value| @cache.fetch(key) { value } }
    value = "I should be retured"
    assert_equal(value, prc.call(:key1, value))
    cached_value = value
    value = "I shouldn't be returned"
    assert_equal(cached_value, prc.call(:key1, value))
    value2 = "value for key2"
    assert_equal(value2, prc.call(:key2, value2))

    value = value2 = "Now I should be returned"
    Process.stub :clock_gettime, Process.clock_gettime(Process::CLOCK_MONOTONIC) + 6 do
      assert_equal(value, prc.call(:key1, value))
      assert_equal(value2, prc.call(:key2, value2))
    end
  end

  def test_cache_can_be_cleared
    value = "cached"
    prc = Proc.new { |key, val| @cache.fetch(key) { val } }
    assert_equal(value, prc.call(:key1, value))
    assert_equal("v2", prc.call(:key2, "v2"))

    value = "new value"
    @cache.clear(:key1)
    assert_equal(value, prc.call(:key1, value))
    assert_equal("v2", prc.call(:key2, "v2.2"))
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
logster-2.20.1 test/logster/test_cache.rb
logster-2.20.0 test/logster/test_cache.rb
logster-2.19.1 test/logster/test_cache.rb
logster-2.19.0 test/logster/test_cache.rb
logster-2.18.1 test/logster/test_cache.rb
logster-2.18.0 test/logster/test_cache.rb
logster-2.17.1 test/logster/test_cache.rb
logster-2.17.0 test/logster/test_cache.rb
logster-2.16.0 test/logster/test_cache.rb
logster-2.15.0 test/logster/test_cache.rb
logster-2.14.0 test/logster/test_cache.rb
logster-2.13.1 test/logster/test_cache.rb
logster-2.13.0 test/logster/test_cache.rb