tests/testthat/test-minimal.R

context("Minimal functionality of Cache types")

test_that("Minimal functionality works in all Cache subclasses", {
  # each new Cache subclass should be added to the below list
  cache_subclasses <- list(
    SqliteCache,
    DiskCache,
    MemoryCache
  )

  # should pass without errors on each subclass from the list
  min_test <- function(CacheSubclass) {
    cache <- CacheSubclass$new()

    cache$set(1, 1)
    expect_true(cache$exists(1))
    expect_equal(cache$get(1), 1)

    cache$delete(1)
    expect_null(cache$get(1))
    expect_equal(cache$get(1, default = 2), 2)

    # expiration test
    cache$set(2, 2, expire_in = 0.01)
    Sys.sleep(0.02)
    expect_null(cache$get(2))

    cache$trim()
    cache$destroy()
  }

  lapply(
    cache_subclasses,
    min_test
  )
})
skubicius/cashmere documentation built on May 22, 2019, 2:46 p.m.