Nothing
# search_datasets validation
test_that("search_datasets requires at least one parameter", {
expect_error(search_datasets(), "At least one search parameter required")
})
# search_datasets parameter handling
test_that("search_datasets builds searches list from name", {
local_mocked_bindings(
build_request = function(path, params, format) {
expect_match(path, "search=name-")
structure(list(), class = "httr2_request")
},
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(structure = list(keyfamilies = list(keyfamily = data.frame(id = "test"))))
)
result <- search_datasets(name = "test")
expect_s3_class(result, "tbl_df")
})
test_that("search_datasets collapses name vector", {
local_mocked_bindings(
build_request = function(path, ...) {
expect_match(path, "a,b")
structure(list(), class = "httr2_request")
},
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(structure = list(keyfamilies = list(keyfamily = data.frame(id = "x"))))
)
search_datasets(name = c("a", "b"))
})
test_that("search_datasets handles all parameters", {
local_mocked_bindings(
build_request = function(path, ...) {
expect_match(path, "search=name-")
expect_match(path, "search=keywords-")
expect_match(path, "search=description-")
expect_match(path, "search=contenttype-")
expect_match(path, "search=units-")
structure(list(), class = "httr2_request")
},
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(structure = list(keyfamilies = list(keyfamily = data.frame(id = "x"))))
)
search_datasets(name = "a", keywords = "b", description = "c", content_type = "d", units = "e")
})
test_that("search_datasets returns empty tibble when no results", {
local_mocked_bindings(
build_request = function(...) structure(list(), class = "httr2_request"),
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(structure = list(keyfamilies = list(keyfamily = NULL)))
)
expect_message(result <- search_datasets(name = "test"), "No datasets found")
expect_s3_class(result, "tbl_df")
expect_equal(nrow(result), 0)
})
# describe_dataset tests
test_that("describe_dataset builds path without id", {
local_mocked_bindings(
build_request = function(path, ...) {
expect_equal(path, "def.sdmx.json")
structure(list(), class = "httr2_request")
},
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(structure = list(keyfamilies = list(keyfamily = data.frame(id = "x"))))
)
result <- describe_dataset()
expect_s3_class(result, "tbl_df")
})
test_that("describe_dataset builds path with id", {
local_mocked_bindings(
build_request = function(path, ...) {
expect_equal(path, "NM_1_1/def.sdmx.json")
structure(list(), class = "httr2_request")
},
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(structure = list(keyfamilies = list(keyfamily = data.frame(id = "x"))))
)
result <- describe_dataset("NM_1_1")
expect_s3_class(result, "tbl_df")
})
test_that("describe_dataset handles NULL id", {
local_mocked_bindings(
build_request = function(path, ...) {
expect_equal(path, "def.sdmx.json")
structure(list(), class = "httr2_request")
},
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(structure = list(keyfamilies = list(keyfamily = data.frame(id = "x"))))
)
result <- describe_dataset(id = NULL)
expect_s3_class(result, "tbl_df")
})
# dataset_overview tests
test_that("dataset_overview requires id", {
expect_error(dataset_overview(), "Dataset ID required")
})
test_that("dataset_overview builds path correctly", {
local_mocked_bindings(
build_request = function(path, params, ...) {
expect_equal(path, "NM_1_1.overview.json")
expect_equal(length(params), 0)
structure(list(), class = "httr2_request")
},
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(overview = list(name = "test", value = "data"))
)
result <- dataset_overview("NM_1_1")
expect_s3_class(result, "tbl_df")
})
test_that("dataset_overview handles select parameter", {
local_mocked_bindings(
build_request = function(path, params, ...) {
expect_equal(params$select, "Keywords,Units")
structure(list(), class = "httr2_request")
},
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(overview = list(a = 1))
)
dataset_overview("NM_1_1", select = c("Keywords", "Units"))
})
test_that("dataset_overview handles NULL select", {
local_mocked_bindings(
build_request = function(path, params, ...) {
expect_equal(length(params), 0)
structure(list(), class = "httr2_request")
},
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(overview = list(a = 1))
)
dataset_overview("NM_1_1", select = NULL)
})
test_that("dataset_overview uses enframe", {
local_mocked_bindings(
build_request = function(...) structure(list(), class = "httr2_request"),
execute_request = function(...) structure(list(), class = "httr2_response"),
parse_json_response = function(...) list(overview = list(key1 = "val1", key2 = "val2"))
)
result <- dataset_overview("NM_1_1")
expect_equal(names(result), c("name", "value"))
expect_equal(nrow(result), 2)
})
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.