tests/testthat/test-dataset_search.r

context("dataset_search")

test_that("dataset_search works as expected", {
  vcr::use_cassette("dataset_search", {
    total_ds <- dataset_search(limit=0)$meta$count
  
    t <- dataset_search(type = "OCCURRENCE",limit=5)
    tt <- dataset_search(type = "OCCURRENCE;CHECKLIST",limit=5)
    
    expect_is(t, "list")
    expect_named(t, c('meta', 'data', 'facets'))
    expect_is(t$data, "tbl_df")
    expect_is(t$data$title, "character")
    expect_lt(t$meta$count,total_ds)
    expect_lte(nrow(t$data),5)
    
    expect_is(tt, "list")
    expect_named(tt, c('meta', 'data', 'facets'))
    expect_is(tt$data, "tbl_df")
    expect_is(tt$data$title, "character")
    expect_lt(tt$meta$count,total_ds)
    expect_lt(t$meta$count,tt$meta$count)
    expect_lte(nrow(tt$data),5)
    expect_true(all(tt$data$type == "OCCURRENCE" |
                    tt$data$type == "CHECKLIST"))
    
    k <- dataset_search(keyword = "bird",limit=5)
    kk <- dataset_search(keyword = "bird;insect",limit=5)
    
    expect_is(k, "list")
    expect_is(k$data, "tbl_df")
    expect_is(k$data$title, "character")
    expect_lt(k$meta$count,total_ds)
    
    expect_is(kk, "list")
    expect_is(kk$data, "tbl_df")
    expect_is(kk$data$title, "character")
    expect_lt(kk$meta$count,total_ds)
    expect_lt(k$meta$count,kk$meta$count)
    
    s <- dataset_search(subtype = "TAXONOMIC_AUTHORITY",limit=5)
    ss <- dataset_search(subtype = "TAXONOMIC_AUTHORITY;GLOBAL_SPECIES_DATASET",
                         limit=5)
    
    expect_is(s, "list")
    expect_is(s$data, "tbl_df")
    expect_is(s$data$title, "character")
    expect_lte(s$meta$count,total_ds)
    expect_lte(nrow(s$data),5)
    
    expect_is(ss, "list")
    expect_is(ss$data, "tbl_df")
    expect_is(ss$data$title, "character")
    expect_lt(ss$meta$count,total_ds)
    expect_lte(s$meta$count,ss$meta$count)
    expect_lte(nrow(ss$data),5)
    expect_true(all(ss$data$subType == "TAXONOMIC_AUTHORITY" |
                      ss$data$subType == "GLOBAL_SPECIES_DATASET"))
    
    l <- dataset_search(license = "CC0_1_0",limit=5)
    ll <- dataset_search(license = "CC0_1_0;CC_BY_4_0",limit=5)
    
    expect_is(l, "list")
    expect_is(l$data, "tbl_df")
    expect_is(l$data$title, "character")
    expect_lte(l$meta$count,total_ds)
    expect_lte(nrow(l$data),5)
    
    expect_is(ll, "list")
    expect_is(ll$data, "tbl_df")
    expect_is(ll$data$title, "character")
    expect_lt(ll$meta$count,total_ds)
    expect_lt(l$meta$count,ll$meta$count)
    expect_lte(nrow(ll$data),5)

    q <- dataset_search(query = "frog",limit=5)
    
    expect_is(q, "list")
    expect_is(q$data, "tbl_df")
    expect_is(q$data$title, "character")
    expect_lte(q$meta$count,total_ds)
    expect_lte(nrow(q$data),5)
  
    p <- dataset_search(publishingCountry = "UA",limit=5)
    pp <- dataset_search(publishingCountry = "UA;US",limit=5)
    
    expect_is(p, "list")
    expect_is(p$data, "tbl_df")
    expect_is(p$data$title, "character")
    expect_lte(p$meta$count,total_ds)
    expect_lte(nrow(p$data),5)
    expect_true(all(p$data$publishingCountry == "UA"))
    
    expect_is(pp, "list")
    expect_is(pp$data, "tbl_df")
    expect_is(pp$data$title, "character")
    expect_lt(pp$meta$count,total_ds)
    expect_lt(p$meta$count,pp$meta$count)
    expect_lte(nrow(pp$data),5)
    expect_true(all(pp$data$publishingCountry == "UA" | 
                  pp$data$publishingCountry == "US"))
    
    b <- dataset_search(subtype="TAXONOMIC_AUTHORITY",limit=5)
    bb <- dataset_search(subtype="TAXONOMIC_AUTHORITY;OBSERVATION",limit=5)
    
    expect_is(b, "list")
    expect_is(b$data, "tbl_df")
    expect_is(b$data$title, "character")
    expect_lte(b$meta$count,total_ds)
    expect_lte(nrow(b$data),5)
    expect_true(all(b$data$subType == "TAXONOMIC_AUTHORITY"))
    
    expect_is(bb, "list")
    expect_is(bb$data, "tbl_df")
    expect_is(bb$data$title, "character")
    expect_lt(bb$meta$count,total_ds)
    expect_lt(b$meta$count,bb$meta$count)
    expect_lte(nrow(bb$data),5)
    expect_true(all(bb$data$subType == "TAXONOMIC_AUTHORITY" | 
                      bb$data$subType == "OBSERVATION"))
    
    
    o <- dataset_search(publishingOrg = "e2e717bf-551a-4917-bdc9-4fa0f342c530",
                   limit=5)
    oo <- dataset_search(publishingOrg = 
          "e2e717bf-551a-4917-bdc9-4fa0f342c530;28eb1a3f-1c15-4a95-931a-4af90ecb574d",limit=5)
    
    expect_is(o, "list")
    expect_is(o$data, "tbl_df")
    expect_is(o$data$title, "character")
    expect_lte(o$meta$count,total_ds)
    expect_lte(nrow(o$data),5)
    expect_true(all(o$data$publishingOrganizationKey == "e2e717bf-551a-4917-bdc9-4fa0f342c530"))
    
    expect_is(oo, "list")
    expect_is(oo$data, "tbl_df")
    expect_is(oo$data$title, "character")
    expect_lt(oo$meta$count,total_ds)
    expect_lt(o$meta$count,oo$meta$count)
    expect_lte(nrow(oo$data),5)
    expect_true(all(oo$data$publishingOrganizationKey == "e2e717bf-551a-4917-bdc9-4fa0f342c530" | 
                      oo$data$publishingOrganizationKey == "28eb1a3f-1c15-4a95-931a-4af90ecb574d"))
    
    
    h <- dataset_search(hostingOrg = "7ce8aef0-9e92-11dc-8738-b8a03c50a862",
                        limit=5)
    hh <- dataset_search(hostingOrg = 
                        "7ce8aef0-9e92-11dc-8738-b8a03c50a862;fbca90e3-8aed-48b1-84e3-369afbd000ce",
                        limit=5)
    
    expect_is(h, "list")
    expect_is(h$data, "tbl_df")
    expect_is(h$data$title, "character")
    expect_lte(h$meta$count,total_ds)
    expect_lte(nrow(h$data),5)
    expect_true(all(h$data$hostingOrganizationKey == "7ce8aef0-9e92-11dc-8738-b8a03c50a862"))
    
    expect_is(hh, "list")
    expect_is(hh$data, "tbl_df")
    expect_is(hh$data$title, "character")
    expect_lt(hh$meta$count,total_ds)
    expect_lt(h$meta$count,hh$meta$count)
    expect_lte(nrow(hh$data),5)
    expect_true(all(hh$data$hostingOrganizationKey == "7ce8aef0-9e92-11dc-8738-b8a03c50a862" | 
                      hh$data$hostingOrganizationKey == "fbca90e3-8aed-48b1-84e3-369afbd000ce"))
    
    
    n <- dataset_search(endorsingNodeKey = "d205def7-82c3-472a-be4b-31d11dcd51fd",
                        limit=5)
    nn <- dataset_search(endorsingNodeKey = 
                           "d205def7-82c3-472a-be4b-31d11dcd51fd;efb9c00e-f802-45dd-8826-a52ec45b89ff",
                         limit=5)
    
    expect_is(n, "list")
    expect_is(n$data, "tbl_df")
    expect_is(n$data$title, "character")
    expect_lte(n$meta$count,total_ds)
    expect_lte(nrow(n$data),5)
    expect_true(all(n$data$endorsingNodeKey == "d205def7-82c3-472a-be4b-31d11dcd51fd"))
    
    expect_is(nn, "list")
    expect_is(nn$data, "tbl_df")
    expect_is(nn$data$title, "character")
    expect_lt(nn$meta$count,total_ds)
    expect_lt(n$meta$count,nn$meta$count)
    expect_lte(nrow(nn$data),5)
    expect_true(all(nn$data$endorsingNodeKey == "d205def7-82c3-472a-be4b-31d11dcd51fd" | 
                      nn$data$endorsingNodeKey == "efb9c00e-f802-45dd-8826-a52ec45b89ff"))
    
    
    d <- dataset_search(decade=1890,limit=5)
    dd <- dataset_search(decade="1890;1990",limit=5)
    ddd <- dataset_search(decade="1890,1990",limit=5)
    
    expect_is(d, "list")
    expect_is(d$data, "tbl_df")
    expect_is(d$data$title, "character")
    expect_lte(d$meta$count,total_ds)
    expect_lte(nrow(d$data),5)
    
    expect_is(dd, "list")
    expect_is(dd$data, "tbl_df")
    expect_is(dd$data$title, "character")
    expect_lte(dd$meta$count,total_ds)
    expect_lte(d$meta$count,dd$meta$count)
    expect_lte(nrow(dd$data),5)
    
    expect_is(ddd, "list")
    expect_is(ddd$data, "tbl_df")
    expect_is(ddd$data$title, "character")
    expect_lte(ddd$meta$count,total_ds)
    expect_lte(dd$meta$count,ddd$meta$count)
    expect_lte(nrow(ddd$data),5)
    
    p <- dataset_search(projectId = "GRIIS", limit=5)
    pp <- dataset_search(projectId = "GRIIS;BID-AF2020-140-REG", limit=5)
    
    expect_is(p, "list")
    expect_is(p$data, "tbl_df")
    expect_is(p$data$title, "character")
    expect_lte(p$meta$count,total_ds)
    expect_lte(nrow(p$data),5)
    expect_true(all(p$data$projectIdentifier == "GRIIS"))
    
    expect_is(pp, "list")
    expect_is(pp$data, "tbl_df")
    expect_is(pp$data$title, "character")
    expect_lt(pp$meta$count,total_ds)
    expect_lt(p$meta$count,pp$meta$count)
    expect_lte(nrow(pp$data),5)
    expect_true(all(pp$data$projectIdentifier == "GRIIS" | 
                      pp$data$projectIdentifier == "BID-AF2020-140-REG"))
    
    
    c <- dataset_search(hostingCountry = "NO", limit=5)
    cc <- dataset_search(hostingCountry = "NO;SE", limit=5)
    
    expect_is(c, "list")
    expect_is(c$data, "tbl_df")
    expect_is(c$data$title, "character")
    expect_lte(c$meta$count,total_ds)
    expect_lte(nrow(c$data),5)
    expect_true(all(c$data$hostingCountry == "NO"))
    
    expect_is(cc, "list")
    expect_is(cc$data, "tbl_df")
    expect_is(cc$data$title, "character")
    expect_lt(cc$meta$count,total_ds)
    expect_lt(c$meta$count,cc$meta$count)
    expect_lte(nrow(cc$data),5)
    expect_true(all(cc$data$hostingCountry == "NO" | 
                      cc$data$hostingCountry == "SE"))
    
    
    y <- dataset_search(networkKey = "99d66b6c-9087-452f-a9d4-f15f2c2d0e7e",limit=5)
    yy <- dataset_search(networkKey = 
                        "99d66b6c-9087-452f-a9d4-f15f2c2d0e7e;2b7c7b4f-4d4f-40d3-94de-c28b6fa054a6",
                        limit=5)
    
    expect_is(y, "list")
    expect_is(y$data, "tbl_df")
    expect_is(y$data$title, "character")
    expect_lte(y$meta$count,total_ds)
    expect_lte(nrow(y$data),5)
    expect_true(all(grepl("99d66b6c-9087-452f-a9d4-f15f2c2d0e7e",y$data$networkKeys)))
    
    expect_is(yy, "list")
    expect_is(yy$data, "tbl_df")
    expect_is(yy$data$title, "character")
    expect_lt(yy$meta$count,total_ds)
    expect_lte(y$meta$count,yy$meta$count)
    expect_lte(nrow(yy$data),5)
    expect_true(all(grepl(
      "99d66b6c-9087-452f-a9d4-f15f2c2d0e7e|2b7c7b4f-4d4f-40d3-94de-c28b6fa054a6",
                          yy$data$networkKeys)))
    
    i <- dataset_search(doi="10.15468/aomfnb",limit=5)
    ii <- dataset_search(doi="10.15468/aomfnb;10.15468/igasai")
    
    expect_is(i, "list")
    expect_is(i$data, "tbl_df")
    expect_is(i$data$title, "character")
    expect_lte(i$meta$count,total_ds)
    expect_lte(nrow(i$data),5)
    expect_true(all(i$data$doi=="10.15468/aomfnb"))

    expect_is(ii, "list")
    expect_is(ii$data, "tbl_df")
    expect_is(ii$data$title, "character")
    expect_lt(ii$meta$count,total_ds)
    expect_lte(i$meta$count,ii$meta$count)
    expect_lte(nrow(ii$data),5)
    expect_true(all(ii$data$doi=="10.15468/aomfnb"| 
                    ii$data$doi=="10.15468/igasai"))
    
    }, preserve_exact_body_bytes = TRUE)

})

test_that("dataset_search facets work as expected", {
  vcr::use_cassette("dataset_search_facet", {
  
  d <- dataset_search(facet="doi",limit=0,facetLimit=5)
  expect_is(d, "list")
  expect_named(d, c('meta', 'data', 'facets'))
  expect_is(d$facets$doi,"data.frame")
  expect_equal(colnames(d$facets$doi),c("name","count"))
  expect_lte(nrow(d$facets$doi),5)
  
  t <- dataset_search(facet="type",limit=0,facetLimit=5)
  expect_is(t, "list")
  expect_named(t, c('meta', 'data', 'facets'))
  expect_is(t$facets$type,"data.frame")
  expect_equal(colnames(t$facets$type),c("name","count"))
  expect_lte(nrow(t$facets$type),5)
  
  p <- dataset_search(facet="publishingCountry",limit=0,facetLimit=5)
  expect_is(p, "list")
  expect_named(p, c('meta', 'data', 'facets'))
  expect_is(p$facets$publishingCountry,"data.frame")
  expect_equal(colnames(p$facets$publishingCountry),c("name","count"))
  expect_lte(nrow(p$facets$publishingCountry),5)
  
  m <- dataset_search(facet="license",limit=0,facetLimit=5, facetMincount=10000)
  expect_is(m, "list")
  expect_named(m, c('meta', 'data', 'facets'))
  expect_is(m$facets$license,"data.frame")
  expect_equal(colnames(m$facets$license),c("name","count"))
  expect_lte(nrow(m$facets$license),5)
  expect_true(all(m$facets$license$count >= 10000))
  }, preserve_exact_body_bytes = TRUE)
  
  })
  
ropensci/rgbif documentation built on June 4, 2024, 4:05 p.m.