context("bibtex_reader")

skip_if_not_installed("bibtex")

test_that("bibtex_reader: works", {
  skip_on_cran()
  
  z <- system.file('extdata/crossref.bib', package = "handlr")
  x <- bibtex_reader(z)

  expect_is(bibtex_reader, "function")
  expect_is(x, "handl")
  expect_named(x)
  expect_is(x$key, "character")
  expect_is(x$id, "character")
  expect_equal(x$type, "article")
  expect_equal(x$bibtex_type, "article")
  expect_equal(x$citeproc_type, "article-journal")
  expect_equal(x$ris_type, "JOUR")
  expect_equal(x$doi, "10.7554/elife.01567")
  expect_is(x$title, "character")
  expect_is(x$author, "list")
  expect_is(x$author[[1]], "list")
  expect_equal(x$author[[1]]$type, "Person")

  expect_equal(attr(x, "from"), "bibtex")
  expect_equal(attr(x, "source_type"), "file")
  expect_match(attr(x, "file"), ".bib")
  expect_false(attr(x, "many"))
})

test_that("bibtex_reader fails well", {
  expect_error(bibtex_reader(), "argument \"x\" is missing")
  expect_error(bibtex_reader(5), "x must be of class character")
})
