test_that("cache api", { dir.create(tmp <- tempfile()) dir.create(tmp2 <- tempfile()) on.exit(unlink(c(tmp, tmp2), recursive = TRUE), add = TRUE) ## This creates the cache sm <- pkg_cache_summary(tmp) expect_true(is.list(sm)) expect_equal(sm$cachepath, tmp) expect_equal(sm$files, 0) expect_equal(sm$size, 0) expect_equal(nrow(pkg_cache_list(tmp)), 0) ## Add some files for testing pc <- package_cache$new(tmp) foo <- file.path(tmp2, "foo") cat("foo-contents\n", file = foo) bar <- file.path(tmp2, "bar") cat("bar-contents\n", file = bar) pkg_cache_add_file(tmp, foo, "dir/foo", package = "pkg1", version = "1.0.0") l <- pkg_cache_list(tmp) expect_equal(pkg_cache_summary(tmp)$files, 1) expect_equal(nrow(l), 1) pc$add(bar, "dir2/bar", package = "pkg2", version = "2.0.0") l <- pkg_cache_list(tmp) expect_equal(pkg_cache_summary(tmp)$files, 2) expect_equal(pkg_cache_summary(tmp)$size, sum(file.info(c(foo, bar))$size)) expect_equal(nrow(l), 2) f1 <- pkg_cache_find(tmp, package = "pkg1") expect_equal(nrow(f1), 1) expect_equal(f1$package, "pkg1") expect_equal(f1$path, "dir/foo") expect_equal(nrow(pkg_cache_find(tmp, package = "blah")), 0) target <- file.path(tmp2, "target") pkg_cache_get_file(tmp, target = target, package = "pkg1") expect_true(file.exists(target)) expect_equal(readLines(target), readLines(foo)) expect_equal( nrow((pkg_cache_get_file(tmp, target = target, package = "blah"))), 0) pkg_cache_delete_files(tmp, package = "pkg1") expect_equal( nrow((pkg_cache_get_file(tmp, target = target, package = "pkg1"))), 0) l <- pkg_cache_list(tmp) expect_equal(pkg_cache_summary(tmp)$files, 1) expect_equal(pkg_cache_summary(tmp)$size, sum(file.info(bar)$size)) expect_equal(nrow(l), 1) pkg_cache_delete_files(tmp) sm <- pkg_cache_summary(tmp) expect_equal(sm$cachepath, tmp) expect_equal(sm$files, 0) expect_equal(sm$size, 0) expect_equal(nrow(pkg_cache_list(tmp)), 0) })