context("HandlrClient")
skip_on_cran()
test_that("HandlrClient class: after initializing, but before reading", {
expect_is(HandlrClient, "R6ClassGenerator")
expect_is(HandlrClient$new, "function")
z <- system.file('extdata/citeproc.json', package = "handlr")
x <- HandlrClient$new(x = z)
expect_is(x, "HandlrClient")
expect_is(x$path, "character")
expect_null(x$string)
expect_null(x$substring)
expect_is(x$ext, "character")
expect_equal(x$ext, "json")
expect_null(x$parsed)
expect_is(x$write, "function")
expect_is(x$read, "function")
})
test_that("HandlrClient class: after initializing and reading", {
z <- system.file('extdata/citeproc.json', package = "handlr")
x <- HandlrClient$new(x = z)
expect_is(x$read("citeproc"), "handl")
expect_is(x$parsed, "handl")
})
test_that("HandlrClient class: writing", {
z <- system.file('extdata/citeproc.json', package = "handlr")
x <- HandlrClient$new(x = z)
x$read("citeproc")
expect_is(x$write("citeproc"), "json")
expect_null(x$write("citeproc", (f<-tempfile())))
expect_is(f, "character")
expect_equal(jsonlite::fromJSON(f, FALSE)$categories, x$parsed$keywords)
})
test_that("HandlrClient fails well", {
expect_error(HandlrClient$new(), "argument \"x\" is missing")
expect_error(HandlrClient$new(5), "x must be of class character")
# expect_error(HandlrClient$new("apple"), "invalid 'file' argument")
})
test_that("HandlrClient fails well: file does not exist", {
z <- system.file('extdata/codemeta.txt', package = "handlr")
expect_error(HandlrClient$new(z), "input is zero length string")
})
test_that("handlr_readers", {
expect_is(handlr_readers, "character")
expect_is(handlr_writers, "character")
})
test_that("HandlrClient class: works with DOIs", {
skip_if_net_down()
a <- HandlrClient$new('https://doi.org/10.7554/elife.01567')
a$read()
a$parsed
# read from a DOI
b <- HandlrClient$new('10.7554/elife.01567')
b$read()
b$parsed
# result from DOI and DOI as url the same
expect_identical(a$parsed, b$parsed)
# can convert to bibtex
expect_true(any(grepl("journal = \\{eLife\\}", a$write('bibtex'))))
# fails as expected
expect_error(
HandlrClient$new('10.7554/elife.01567', timeout_ms = 10))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.