Nothing
test_that("wfs_get_bbox", {
expect_snapshot(error = TRUE, wfs_get_bbox(c(1, 2)))
expect_snapshot(error = TRUE, wfs_get_bbox(c(1, 2, 3, 4)))
expect_silent(ok <- wfs_get_bbox(c(1, 1, 1, 1), srs = 4326))
expect_s3_class(ok, "bbox")
expect_equal(sf::st_crs(ok)$epsg, 3857)
expect_true(is.numeric(as.vector(ok)))
expect_length(ok, 4)
expect_identical(ok, wfs_get_bbox(sf::st_as_sfc(ok)))
# Trigger limit
buf <- c(0, 0, 10000, 10000)
class(buf) <- "bbox"
buf <- sf::st_as_sfc(buf)
buf <- sf::st_set_crs(buf, 3857)
expect_snapshot(wfs_get_bbox(buf, limit_km2 = 1))
# Check transformation to another srs
geobox <- c(1, 1, 2, 1)
another <- wfs_get_bbox(geobox, srs = 4326, srs_dest = 25830)
merc <- wfs_get_bbox(geobox, srs = 4326, srs_dest = 3857)
expect_false(any(another == merc))
})
test_that("Test offline", {
skip_on_cran()
skip_if_offline()
local_mocked_bindings(is_online_fun = function(...) {
FALSE
})
cdir <- file.path(tempdir(), "wfs_inspire_cache")
unlink(cdir, recursive = TRUE)
expect_snapshot(
fend <- inspire_wfs_get(
path = "INSPIRE/wfsBU.aspx",
query = list(
request = "getfeature",
Typenames = "BU.BUILDING",
SRSname = 25829,
bbox = "742438,4046840,742613,4046970"
)
)
)
expect_null(fend)
expect_length(
list.files(cdir, recursive = TRUE),
0
)
unlink(cdir, recursive = TRUE, force = TRUE)
local_mocked_bindings(is_online_fun = function(...) {
httr2::is_online()
})
expect_identical(is_online_fun(), httr2::is_online())
})
test_that("Test 404", {
skip_on_cran()
skip_if_offline()
cdir <- file.path(tempdir(), "wfs_inspire_cache")
if (dir.exists(cdir)) {
unlink(cdir, recursive = TRUE, force = TRUE)
}
local_mocked_bindings(is_404 = function(...) {
TRUE
})
expect_message(
s <- inspire_wfs_get(
path = "INSPIRE/wfsBU.aspx",
query = list(
request = "getfeature",
Typenames = "BU.BUILDING",
SRSname = 25829,
bbox = "742438,4046840,742613,4046970"
)
),
"Error "
)
expect_null(s)
local_mocked_bindings(is_404 = function(...) {
FALSE
})
# Otherwise work
expect_silent(
s <- inspire_wfs_get(
path = "INSPIRE/wfsBU.aspx",
query = list(
request = "getfeature",
Typenames = "BU.BUILDING",
SRSname = 25829,
bbox = "742438,4046840,742613,4046970"
)
)
)
expect_length(s, 1)
expect_true(is.character(s))
expect_true(file.exists(s))
expect_silent(tosf <- sf::read_sf(s))
expect_s3_class(tosf, "sf")
if (dir.exists(cdir)) {
unlink(cdir, recursive = TRUE, force = TRUE)
}
})
test_that("Error on call", {
skip_on_cran()
skip_if_offline()
cdir <- file.path(tempdir(), "wfs_inspire_cache")
if (dir.exists(cdir)) {
unlink(cdir, recursive = TRUE, force = TRUE)
}
expect_message(
s <- inspire_wfs_get(
path = "INSPIRE/wfsBU.aspx",
query = list(
request = "getfeatureaa",
Typenames = "BU.BUILDING",
SRSname = 25829,
bbox = "742438,4046840,742613,4046970"
)
),
"didn't provide results:"
)
expect_null(s)
if (dir.exists(cdir)) {
unlink(cdir, recursive = TRUE, force = TRUE)
}
})
test_that("Bad query", {
skip_on_cran()
skip_if_offline()
cdir <- file.path(tempdir(), "wfs_inspire_cache")
if (dir.exists(cdir)) {
unlink(cdir, recursive = TRUE, force = TRUE)
}
expect_snapshot(
error = TRUE,
s <- inspire_wfs_get(
path = "INSPIRE/wfsBU.aspx",
query = 20
)
)
expect_snapshot(
error = TRUE,
s <- inspire_wfs_get(
path = "INSPIRE/wfsBU.aspx",
query = list(20, NA, NULL)
)
)
expect_message(
s <- inspire_wfs_get(
path = "INSPIRE/wfsBU.aspx",
query = list(
request = "getfeature",
STOREDQUERIE_ID = "GETOTHERBUILDINGBYPARCEL",
NULL,
refcat = "9398516VK3799G",
NA,
"another one bite the dust",
srsname = "EPSG::25829"
),
verbose = TRUE
),
"Removing 3 empty and/or unnamed elements in"
)
sfobj1 <- read_geo_file_sf(s)
unlink(s)
# What about my EPSG?
sfobj2 <- inspire_wfs_get(
path = "INSPIRE/wfsBU.aspx",
query = list(
request = "getfeature",
STOREDQUERIE_ID = "GETOTHERBUILDINGBYPARCEL",
refcat = "9398516VK3799G",
srsname = 25829
)
) |>
read_geo_file_sf()
expect_identical(sfobj1, sfobj2)
expect_s3_class(sfobj1, "sf")
expect_equal(sf::st_crs(sfobj1)$epsg, 25829)
if (dir.exists(cdir)) {
unlink(cdir, recursive = TRUE, force = TRUE)
}
})
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.