tests/testthat/test-esp-get-landwater.R

test_that("Test offline", {
  skip_on_cran()
  skip_if_siane_offline()

  options(mapspain_test_offline = TRUE)
  expect_message(
    n <- esp_get_rivers(update_cache = TRUE),
    "Offline"
  )
  expect_null(n)
  expect_message(
    n <- esp_get_wetlands(update_cache = TRUE),
    "Offline"
  )
  expect_null(n)
  expect_message(
    n <- get_river_names(update_cache = TRUE),
    "Offline"
  )
  expect_null(n)

  options(mapspain_test_offline = FALSE)
})

test_that("Test 404", {
  skip_on_cran()
  skip_if_siane_offline()

  options(mapspain_test_404 = TRUE)
  expect_message(
    n <- esp_get_rivers(update_cache = TRUE),
    "Error"
  )
  expect_null(n)
  expect_message(
    n <- esp_get_wetlands(update_cache = TRUE),
    "Error"
  )
  expect_null(n)
  expect_message(
    n <- get_river_names(update_cache = TRUE),
    "Error"
  )
  expect_null(n)
  options(mapspain_test_404 = FALSE)
})


test_that("Cache vs non-cached rivers", {
  skip_on_cran()
  skip_if_siane_offline()

  cdir <- file.path(tempdir(), "testrivers")
  if (dir.exists(cdir)) {
    unlink(cdir, recursive = TRUE, force = TRUE)
  }

  expect_identical(
    list.files(cdir, recursive = TRUE),
    character(0)
  )
  expect_message(
    db_online <- esp_get_rivers(
      cache = FALSE,
      verbose = TRUE,
      cache_dir = cdir
    ),
    "Reading from"
  )

  expect_identical(
    list.files(cdir, recursive = TRUE),
    "siane/rivernames.rda"
  )

  # vs cache TRUE
  expect_silent(
    db_cached <- esp_get_rivers(
      cache = TRUE,
      cache_dir = cdir
    )
  )

  expect_identical(db_online, db_cached)
  expect_s3_class(db_online, "sf")
  expect_s3_class(db_online, "tbl_df")
  expect_identical(
    list.files(cdir, recursive = TRUE),
    c(
      "siane/rivernames.rda",
      "siane/se89_3_hidro_rio_l_x.gpkg",
      "siane/se89_3_hidro_rio_l_y.gpkg"
    )
  )

  # Cleanup
  unlink(cdir, recursive = TRUE, force = TRUE)
})

test_that("Cache vs non-cached wetlands", {
  skip_on_cran()
  skip_if_siane_offline()

  cdir <- file.path(tempdir(), "testwetland")
  if (dir.exists(cdir)) {
    unlink(cdir, recursive = TRUE, force = TRUE)
  }

  expect_identical(
    list.files(cdir, recursive = TRUE),
    character(0)
  )
  expect_message(
    db_online <- esp_get_wetlands(
      cache = FALSE,
      verbose = TRUE,
      cache_dir = cdir
    ),
    "Reading from"
  )

  expect_identical(
    list.files(cdir, recursive = TRUE),
    character(0)
  )

  # vs cache TRUE
  expect_silent(
    db_cached <- esp_get_wetlands(
      cache = TRUE,
      cache_dir = cdir
    )
  )

  expect_identical(db_online, db_cached)
  expect_s3_class(db_online, "sf")
  expect_s3_class(db_online, "tbl_df")
  expect_identical(
    list.files(cdir, recursive = TRUE),
    "siane/se89_3_hidro_rio_a_x.gpkg"
  )

  # Cleanup
  unlink(cdir, recursive = TRUE, force = TRUE)
})

test_that("Filtering names", {
  skip_on_cran()
  skip_if_siane_offline()

  cdir <- file.path(tempdir(), "testwetland_online")
  if (dir.exists(cdir)) {
    unlink(cdir, recursive = TRUE, force = TRUE)
  }

  expect_silent(
    l <- esp_get_rivers(
      cache_dir = cdir,
      epsg = 3857
    )
  )
  expect_s3_class(l, "sf")
  expect_s3_class(l, "tbl_df")

  expect_equal(sf::st_crs(l)$epsg, 3857)

  expect_silent(
    l <- esp_get_wetlands(
      cache_dir = cdir,
      epsg = 3857
    )
  )
  expect_s3_class(l, "sf")
  expect_s3_class(l, "tbl_df")

  expect_equal(sf::st_crs(l)$epsg, 3857)

  expect_snapshot(ss <- esp_get_rivers(cache_dir = cdir, name = "NIDNIFOMDF"))
  expect_shape(ss, nrow = 0)

  expect_snapshot(ss <- esp_get_wetlands(cache_dir = cdir, name = "NIDNIFOMDF"))
  expect_shape(ss, nrow = 0)

  expect_silent(ebro <- esp_get_rivers(cache_dir = cdir, name = "Ebro"))
  expect_s3_class(ebro, "sf")
  expect_s3_class(ebro, "tbl_df")
  expect_lt(nrow(ebro), 20)

  expect_silent(
    serena <- esp_get_wetlands(
      cache_dir = cdir,
      name = "Serena"
    )
  )
  expect_s3_class(serena, "sf")
  expect_s3_class(serena, "tbl_df")
  expect_lt(nrow(serena), 5)

  unlink(cdir, recursive = TRUE, force = TRUE)
})

test_that("Deprecations", {
  skip_on_cran()
  skip_if_siane_offline()

  cdir <- file.path(tempdir(), "testwetland_dep")
  if (dir.exists(cdir)) {
    unlink(cdir, recursive = TRUE, force = TRUE)
  }

  expect_snapshot(
    l <- esp_get_rivers(
      cache_dir = cdir,
      resolution = 10
    )
  )
  expect_s3_class(l, "sf")
  expect_s3_class(l, "tbl_df")
  expect_equal(sf::st_crs(l)$epsg, 4258)

  expect_snapshot(
    l1 <- esp_get_rivers(
      cache_dir = cdir,
      name = "Serena",
      spatialtype = "area"
    )
  )

  expect_silent(
    l2 <- esp_get_wetlands(
      cache_dir = cdir,
      name = "Serena"
    )
  )
  expect_s3_class(l2, "sf")
  expect_s3_class(l2, "tbl_df")

  expect_identical(l1, l2)

  unlink(cdir, recursive = TRUE, force = TRUE)
})

Try the mapSpain package in your browser

Any scripts or data that you put into this service are public.

mapSpain documentation built on Jan. 17, 2026, 9:07 a.m.