Nothing
test_that("CSV file content is loaded correctly", {
skip_if_not_installed("rocrateR")
# create temporary directory
tmp_dir <- file.path(tempdir(), "dsROCRate_tests")
dir.create(tmp_dir, recursive = TRUE)
on.exit(unlink(tmp_dir, recursive = TRUE, force = TRUE))
# create a CSV file
csv_path <- file.path(tmp_dir, "data.csv")
write.csv(data.frame(a = 1:3, b = letters[1:3]), csv_path, row.names = FALSE)
# create minimal RO-Crate
roc <- rocrateR::rocrate_5s()
# Add File entity without content
roc <- rocrateR::add_entity(
roc,
entity = rocrateR::entity(
id = "data.csv",
type = "File",
encodingFormat = "text/csv"
)
)
# Run function
roc2 <- load_content(roc, tmp_dir)
# Retrieve entity
ent <- rocrateR::get_entity(roc2, id = "data.csv")[[1]]
expect_false(is.null(ent$content))
expect_s3_class(ent$content[[1]], "data.frame")
expect_equal(nrow(ent$content[[1]]), 3)
})
test_that("Text file content is loaded correctly", {
skip_if_not_installed("rocrateR")
# create temporary directory
tmp_dir <- file.path(tempdir(), "dsROCRate_tests")
dir.create(tmp_dir, recursive = TRUE)
on.exit(unlink(tmp_dir, recursive = TRUE, force = TRUE))
# create text file
txt_path <- file.path(tmp_dir, "notes.txt")
writeLines(c("line1", "line2"), txt_path)
# create minimal RO-Crate
roc <- rocrateR::rocrate_5s()
roc <- rocrateR::add_entity(
roc,
entity = rocrateR::entity(
id = "notes.txt",
type = "File",
encodingFormat = "text/plain"
)
)
roc2 <- load_content(roc, tmp_dir)
ent <- rocrateR::get_entity(roc2, id = "notes.txt")[[1]]
expect_false(is.null(ent$content))
expect_equal(ent$content[[1]], c("line1", "line2"))
})
test_that("Entities with existing content are not modified", {
skip_if_not_installed("rocrateR")
# create temporary directory
tmp_dir <- file.path(tempdir(), "dsROCRate_tests")
dir.create(tmp_dir, recursive = TRUE)
on.exit(unlink(tmp_dir, recursive = TRUE, force = TRUE))
# create minimal RO-Crate
roc <- rocrateR::rocrate_5s()
roc <- rocrateR::add_entity(
roc,
entity = rocrateR::entity(
id = "existing.txt",
type = "File",
encodingFormat = "text/plain",
content = list("already here")
)
)
roc2 <- load_content(roc, tmp_dir)
ent <- rocrateR::get_entity(roc2, id = "existing.txt")[[1]]
expect_equal(ent$content[[1]], "already here")
})
test_that("Missing files do not break function and are skipped", {
skip_if_not_installed("rocrateR")
# create temporary directory
tmp_dir <- file.path(tempdir(), "dsROCRate_tests")
dir.create(tmp_dir, recursive = TRUE)
on.exit(unlink(tmp_dir, recursive = TRUE, force = TRUE))
# create minimal RO-Crate
roc <- rocrateR::rocrate_5s()
roc <- rocrateR::add_entity(
roc,
entity = rocrateR::entity(
id = "missing.txt",
type = "File",
encodingFormat = "text/plain"
)
)
expect_no_error({
roc2 <- load_content(roc, tmp_dir)
})
ent <- rocrateR::get_entity(roc2, id = "missing.txt")[[1]]
expect_true(is.null(ent$content))
})
test_that("load_content works end-to-end with real RO-Crate structure", {
skip_if_not_installed("rocrateR")
# create temporary directory
tmp_dir <- file.path(tempdir(), "dsROCRate_tests")
dir.create(tmp_dir, recursive = TRUE)
on.exit(unlink(tmp_dir, recursive = TRUE, force = TRUE))
# create files inside RO-Crate
writeLines("hello world", file.path(tmp_dir, "file1.txt"))
write.csv(
data.frame(x = 42),
file.path(tmp_dir, "file2.csv"),
row.names = FALSE
)
# create minimal RO-Crate
roc <- rocrateR::rocrate_5s()
# add both files as entities
roc <- rocrateR::add_entity(
roc,
entity = rocrateR::entity(
id = "file1.txt",
type = "File",
encodingFormat = "text/plain"
)
)
roc <- rocrateR::add_entity(
roc,
entity = rocrateR::entity(
id = "file2.csv",
type = "File",
encodingFormat = "text/csv"
)
)
# run function
roc2 <- load_content(roc, tmp_dir)
ent1 <- rocrateR::get_entity(roc2, id = "file1.txt")[[1]]
ent2 <- rocrateR::get_entity(roc2, id = "file2.csv")[[1]]
expect_equal(ent1$content[[1]], "hello world")
expect_s3_class(ent2$content[[1]], "data.frame")
expect_equal(ent2$content[[1]]$x, 42)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.