tests/testthat/test_examples.R

test_that("basic examples work", {
	skip_on_cran()

	ping <- sb_ping()
	
	expect_true(ping)
	
	if(!ping) stop("sciencebase down, tests won't work")
	 
	item <- "5a83025ce4b00f54eb32956b"
	
	expect_true(identifier_exists(item))
	
	expect_false(identifier_exists("1234567890lkjhgfds"))
	
	expect_true(item_exists("https://www.sciencebase.gov/vocab/category/item/identifier", "DOI", "doi:10.5066/P9ZRX948"))
	
	q <- query_sb_doi("doi:10.5066/P9ZRX948")
	
	expect_equal(q[[1]]$id, "5c081d14e4b0815414d0346c")

	i <- item_get_parent(q[[1]]$id)
	
	expect_equal(i$id, "5474ec49e4b04d7459a7eab2")
	
	# test print method
	expect_equal(length(capture.output(i)), 7)

	w <- query_item_in_folder("Water", i$id, limit = 3)
	
	expect_equal(length(w), 3)
	
	q <- query_sb_date(start = as.POSIXct("2020-01-01"), 
										 end = as.POSIXct("2021-01-01"), 
										 limit = 1)
		
	expect_equal(length(q), 1)
	
	item_files <- item_list_files(item)
	
	file_name <- "huc8_05010007_example.zip"
	
	expect_equal(item_files$fname, file_name)
	
	f <- item_file_download(item, dest_dir = tempdir(), overwrite_file = TRUE)
	
	expect_equal(basename(f), file_name)
	
	expect_warning(item_file_download(item, dest_dir = tempdir(), overwrite_file = FALSE),
								 "exists, and overwrite is false. Skipping.")

	f <- item_file_download(item, names = file_name, 
													destinations = file.path(tempdir(), file_name), 
													overwrite_file = TRUE)
	
	expect_equal(basename(f), file_name)
	
	expect_error(item_file_download(item, names = c("test", file_name), 
													destinations = file.path(tempdir(), file_name), 
													overwrite_file = TRUE),
							 "Length of names and destinations must be identical")
	
	set_endpoint("dev")
	
	expect_equal(sbtools:::pkg.env$domain, "https://beta.sciencebase.gov/")
	
	expect_equal(sbtools:::pkg.env$graphql_url, 
							 "https://api-beta.staging.sciencebase.gov/graphql")
	
	set_endpoint()
	
	expect_equal(sbtools:::pkg.env$domain, 
							 "https://www.sciencebase.gov/")

	expect_equal(sbtools:::pkg.env$graphql_url, 
							 "https://api.sciencebase.gov/graphql")
	
	expect_equal(sbtools:::pkg.env$auth_server_url,
							 "https://www.sciencebase.gov/auth")
	
	types <- sb_datatypes()
	
	expect_equal(class(types), "character")
	
	search_result <- query_sb_datatype('Map Service')
	
	expect_equal(length(search_result), 20)
	
	search_result <- query_sb_datatype('Map Service', limit = 5)
	
	expect_equal(length(search_result), 5)
	
	get_f <- c('title', 'citation', 'contacts')
	
	fields <- item_get_fields("651346cad34eeedefc139ec9", get_f)

	expect_equal(names(fields), get_f)
	
	qs <- query_sb_spatial(long=c(-104.4, -95.1), lat=c(37.5, 41.0), limit=3)
	
	expect_equal(length(qs), 3)
	
	qs2 <- query_sb_spatial(bb_wkt="POLYGON((-104.4 41.0,-95.1 41.0,-95.1 37.5,-104.4 37.5,-104.4 41.0))", limit = 3)
	
	expect_equal(length(qs2), 3)
	
	conus <- data.frame(
		lat = c(49.078148, 47.575022, 32.914614, 25.000481),
		long = c(-124.722111, -67.996898, -118.270335, -80.125804))
	
	bbox <- sf::st_as_sf(conus, coords = c("long", "lat"), crs = 4326)
	
	qs3 <- query_sb_spatial(
		bbox = bbox, 
		limit = 3)
	
	expect_equal(length(qs3), 3)
	
	expect_equal(length(query_sb_text('Lees Ferry')), 20)
	
	expect_equal(length(item_list_children(item_get('5060b03ae4b00fc20c4f3c8b'))), 20)
	
	expect_equal(length(item_list_children(item_get('5060b03ae4b00fc20c4f3c8b'), limit = 5)), 5)
	
	expect_warning(query_sb("test"))
	
	res <- query_sb(list(parentId = "5474ec49e4b04d7459a7eab2"), limit = 1010)
	
	expect_equal(length(res), 1010)
	
	expect_error(user_id())
	
	expect_error(as.sbitem(matrix(1,2,3)), "No 'as.sbitem' method for class  matrix, array")
	
	expect_equal(as.sbitem(NULL), NULL)
	
	expect_false(is.sbitem(NULL))

	# TODO: bring back session_details()	
	# d <- session_details()
	# 
	# expect_true(is.list(d))
})
	
USGS-R/sbtools documentation built on Feb. 21, 2024, 10:15 a.m.