spec/crossref_spec.rb in bolognese-0.3 vs spec/crossref_spec.rb in bolognese-0.4.1
- old
+ new
@@ -1,16 +1,35 @@
require 'spec_helper'
describe Bolognese::Crossref, vcr: true do
let(:id) { "10.7554/eLife.01567" }
- subject { Bolognese::Crossref.new(id) }
+ subject { Bolognese::Crossref.new(id: id) }
context "get metadata" do
+ it "DOI with data citation" do
+ expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
+ expect(subject.type).to eq("ScholarlyArticle")
+ expect(subject.additional_type).to eq("JournalArticle")
+ expect(subject.author).to eq([{"@type"=>"Person", "givenName"=>"Martial", "familyName"=>"Sankar"},
+ {"@type"=>"Person", "givenName"=>"Kaisa", "familyName"=>"Nieminen"},
+ {"@type"=>"Person", "givenName"=>"Laura", "familyName"=>"Ragni"},
+ {"@type"=>"Person", "givenName"=>"Ioannis", "familyName"=>"Xenarios"},
+ {"@type"=>"Person", "givenName"=>"Christian S", "familyName"=>"Hardtke"}])
+ expect(subject.license).to eq("http://creativecommons.org/licenses/by/3.0/")
+ expect(subject.name).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
+ expect(subject.date_published).to eq("2014-02-11")
+ expect(subject.date_modified).to eq("2015-08-11T05:35:02Z")
+ expect(subject.is_part_of).to eq("@type"=>"Periodical", "name"=>"eLife", "issn"=>"2050-084X")
+ expect(subject.citation.count).to eq(27)
+ expect(subject.citation[21]).to eq("@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5061/dryad.b835k", "position"=>"22", "datePublished"=>"2014")
+ expect(subject.provider).to eq("@type"=>"Organization", "name"=>"Crossref")
+ end
+
it "journal article" do
id = "https://doi.org/10.1371/journal.pone.0000030"
- subject = Bolognese::Crossref.new(id)
+ subject = Bolognese::Crossref.new(id: id)
expect(subject.id).to eq(id)
expect(subject.type).to eq("ScholarlyArticle")
expect(subject.additional_type).to eq("JournalArticle")
expect(subject.author).to eq([{"@type"=>"Person", "givenName"=>"Markus", "familyName"=>"Ralser"},
{"@type"=>"Person", "givenName"=>"Gino", "familyName"=>"Heeren"},
@@ -27,11 +46,11 @@
expect(subject.provider).to eq("@type"=>"Organization", "name"=>"Crossref")
end
it "posted_content" do
id = "https://doi.org/10.1101/097196"
- subject = Bolognese::Crossref.new(id)
+ subject = Bolognese::Crossref.new(id: id)
expect(subject.id).to eq(id)
expect(subject.type).to eq("CreativeWork")
expect(subject.additional_type).to eq("PostedContent")
expect(subject.author.count).to eq(10)
expect(subject.author.last).to eq("@type"=>"Person", "@id"=>"http://orcid.org/0000-0003-4060-7360", "givenName"=>"Timothy", "familyName"=>"Clark")
@@ -42,32 +61,13 @@
expect(subject.date_modified).to eq("2016-12-29T00:10:20Z")
expect(subject.is_part_of).to be_nil
expect(subject.provider).to eq("@type"=>"Organization", "name"=>"Crossref")
end
- it "DOI with data citation" do
- expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
- expect(subject.type).to eq("ScholarlyArticle")
- expect(subject.additional_type).to eq("JournalArticle")
- expect(subject.author).to eq([{"@type"=>"Person", "givenName"=>"Martial", "familyName"=>"Sankar"},
- {"@type"=>"Person", "givenName"=>"Kaisa", "familyName"=>"Nieminen"},
- {"@type"=>"Person", "givenName"=>"Laura", "familyName"=>"Ragni"},
- {"@type"=>"Person", "givenName"=>"Ioannis", "familyName"=>"Xenarios"},
- {"@type"=>"Person", "givenName"=>"Christian S", "familyName"=>"Hardtke"}])
- expect(subject.license).to eq("http://creativecommons.org/licenses/by/3.0/")
- expect(subject.name).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
- expect(subject.date_published).to eq("2014-02-11")
- expect(subject.date_modified).to eq("2015-08-11T05:35:02Z")
- expect(subject.is_part_of).to eq("@type"=>"Periodical", "name"=>"eLife", "issn"=>"2050-084X")
- expect(subject.citation.count).to eq(27)
- expect(subject.citation[21]).to eq("@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5061/dryad.b835k", "position"=>"22", "datePublished"=>"2014")
- expect(subject.provider).to eq("@type"=>"Organization", "name"=>"Crossref")
- end
-
it "DOI with SICI DOI" do
id = "https://doi.org/10.1890/0012-9658(2006)87[2832:tiopma]2.0.co;2"
- subject = Bolognese::Crossref.new(id)
+ subject = Bolognese::Crossref.new(id: id)
expect(subject.id).to eq("https://doi.org/10.1890/0012-9658(2006)87%5B2832:tiopma%5D2.0.co;2")
expect(subject.type).to eq("ScholarlyArticle")
expect(subject.additional_type).to eq("JournalArticle")
expect(subject.author).to eq([{"@type"=>"Person", "givenName"=>"A.", "familyName"=>"Fenton"}, {"@type"=>"Person", "givenName"=>"S. A.", "familyName"=>"Rands"}])
expect(subject.license).to eq("http://doi.wiley.com/10.1002/tdm_license_1")
@@ -78,13 +78,39 @@
expect(subject.page_end).to eq("2841")
expect(subject.is_part_of).to eq("@type"=>"Periodical", "name"=>"Ecology", "issn"=>"0012-9658")
expect(subject.provider).to eq("@type"=>"Organization", "name"=>"Crossref")
end
+ it "DOI with ORCID ID" do
+ id = "https://doi.org/10.1155/2012/291294"
+ subject = Bolognese::Crossref.new(id: id)
+ expect(subject.id).to eq("https://doi.org/10.1155/2012/291294")
+ expect(subject.type).to eq("ScholarlyArticle")
+ expect(subject.additional_type).to eq("JournalArticle")
+ expect(subject.author).to eq([{"@type"=>"Person", "givenName"=>"Wendy", "familyName"=>"Thanassi"},
+ {"@type"=>"Person", "givenName"=>"Art", "familyName"=>"Noda"},
+ {"@type"=>"Person",
+ "@id"=>"http://orcid.org/0000-0003-2043-4925",
+ "givenName"=>"Beatriz",
+ "familyName"=>"Hernandez"},
+ {"@type"=>"Person", "givenName"=>"Jeffery", "familyName"=>"Newell"},
+ {"@type"=>"Person", "givenName"=>"Paul", "familyName"=>"Terpeluk"},
+ {"@type"=>"Person", "givenName"=>"David", "familyName"=>"Marder"},
+ {"@type"=>"Person", "givenName"=>"Jerome A.", "familyName"=>"Yesavage"}])
+ expect(subject.license).to eq("http://creativecommons.org/licenses/by/3.0/")
+ expect(subject.name).to eq("Delineating a Retesting Zone Using Receiver Operating Characteristic Analysis on Serial QuantiFERON Tuberculosis Test Results in US Healthcare Workers")
+ expect(subject.date_published).to eq("2012")
+ expect(subject.date_modified).to eq("2016-08-02T12:42:41Z")
+ expect(subject.page_start).to eq("1")
+ expect(subject.page_end).to eq("7")
+ expect(subject.is_part_of).to eq("@type"=>"Periodical", "name"=>"Pulmonary Medicine", "issn"=>"2090-1836")
+ expect(subject.provider).to eq("@type"=>"Organization", "name"=>"Crossref")
+ end
+
it "date in future" do
id = "https://doi.org/10.1016/j.ejphar.2015.03.018"
- subject = Bolognese::Crossref.new(id)
+ subject = Bolognese::Crossref.new(id: id)
expect(subject.id).to eq(id)
expect(subject.type).to eq("ScholarlyArticle")
expect(subject.additional_type).to eq("JournalArticle")
expect(subject.author).to eq([{"@type"=>"Person", "givenName"=>"Sarah E.", "familyName"=>"Beck"},
{"@type"=>"Person", "givenName"=>"Suzanne E.", "familyName"=>"Queen"},
@@ -103,19 +129,53 @@
expect(subject.provider).to eq("@type"=>"Organization", "name"=>"Crossref")
end
it "not found error" do
id = "https://doi.org/10.7554/elife.01567x"
- subject = Bolognese::Crossref.new(id)
- expect(subject.id).to eq(id)
+ subject = Bolognese::Crossref.new(id: id)
+ expect(subject.id).to be_nil
expect(subject.exists?).to be false
end
end
+ context "get metadata as string" do
+ it "DOI with data citation" do
+ id = "10.7554/eLife.01567"
+ string = Bolognese::Crossref.new(id: id).raw
+
+ subject = Bolognese::Crossref.new(string: string)
+ expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
+ expect(subject.type).to eq("ScholarlyArticle")
+ expect(subject.additional_type).to eq("JournalArticle")
+ expect(subject.author).to eq([{"@type"=>"Person", "givenName"=>"Martial", "familyName"=>"Sankar"},
+ {"@type"=>"Person", "givenName"=>"Kaisa", "familyName"=>"Nieminen"},
+ {"@type"=>"Person", "givenName"=>"Laura", "familyName"=>"Ragni"},
+ {"@type"=>"Person", "givenName"=>"Ioannis", "familyName"=>"Xenarios"},
+ {"@type"=>"Person", "givenName"=>"Christian S", "familyName"=>"Hardtke"}])
+ expect(subject.license).to eq("http://creativecommons.org/licenses/by/3.0/")
+ expect(subject.name).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
+ expect(subject.date_published).to eq("2014-02-11")
+ expect(subject.date_modified).to eq("2015-08-11T05:35:02Z")
+ expect(subject.is_part_of).to eq("@type"=>"Periodical", "name"=>"eLife", "issn"=>"2050-084X")
+ expect(subject.citation.count).to eq(27)
+ expect(subject.citation[21]).to eq("@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5061/dryad.b835k", "position"=>"22", "datePublished"=>"2014")
+ expect(subject.provider).to eq("@type"=>"Organization", "name"=>"Crossref")
+ end
+ end
+
context "get metadata as datacite xml" do
it "DOI with data citation" do
expect(subject.validation_errors).to be_empty
datacite = Maremma.from_xml(subject.as_datacite).fetch("resource", {})
expect(datacite.dig("titles", "title")).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
+ end
+
+ it "DOI with ORCID ID" do
+ id = "https://doi.org/10.1155/2012/291294"
+ subject = Bolognese::Crossref.new(id: id)
+ expect(subject.validation_errors).to be_empty
+ datacite = Maremma.from_xml(subject.as_datacite).fetch("resource", {})
+ expect(datacite.dig("creators", "creator").count).to eq(7)
+ expect(datacite.dig("creators", "creator").first).to eq("creatorName"=>"Thanassi, Wendy", "givenName"=>"Wendy", "familyName"=>"Thanassi")
end
end
end