spec/readers/crossref_reader_spec.rb in briard-2.7.1 vs spec/readers/crossref_reader_spec.rb in briard-2.8.0

- old
+ new

@@ -52,105 +52,98 @@ 'funderIdentifierType' => 'Crossref Funder ID', 'funderName' => 'Swiss National Science Foundation' }, { 'funderIdentifier' => 'https://doi.org/10.13039/501100006390', 'funderIdentifierType' => 'Crossref Funder ID', 'funderName' => 'University of Lausanne' }]) - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'journal article' do input = 'https://doi.org/10.1371/journal.pone.0000030' - subject = described_class.new(input: input) + subject = described_class.new(input: input, from: 'crossref_json') expect(subject.valid?).to be true expect(subject.id).to eq('https://doi.org/10.1371/journal.pone.0000030') - expect(subject.identifiers).to eq([{ 'identifier' => '10.1371/journal.pone.0000030', - 'identifierType' => 'Publisher ID' }]) expect(subject.url).to eq('https://dx.plos.org/10.1371/journal.pone.0000030') expect(subject.types).to eq('bibtex' => 'article', 'citeproc' => 'article-journal', 'resourceType' => 'JournalArticle', 'resourceTypeGeneral' => 'JournalArticle', 'ris' => 'JOUR', 'schemaOrg' => 'ScholarlyArticle') expect(subject.creators.length).to eq(5) - expect(subject.creators.first).to eq('nameType' => 'Personal', 'name' => 'Ralser, Markus', - 'givenName' => 'Markus', 'familyName' => 'Ralser') + expect(subject.creators.first).to eq('name' => 'Ralser, Markus', 'givenName' => 'Markus', 'familyName' => 'Ralser', 'nameType' => 'Personal') expect(subject.contributors).to eq([{ 'contributorType' => 'Editor', 'familyName' => 'Janbon', - 'givenName' => 'Guilhem', 'name' => 'Janbon, Guilhem', 'nameType' => 'Personal' }]) - expect(subject.titles).to eq([{ 'title' => 'Triose Phosphate Isomerase Deficiency Is Caused by Altered Dimerization???Not Catalytic Inactivity???of the Mutant Enzymes' }]) + 'givenName' => 'Guilhem', 'name' => 'Janbon, Guilhem', "nameType"=>"Personal" }]) + expect(subject.titles).to eq([{ 'title' => "Triose Phosphate Isomerase Deficiency Is Caused by Altered Dimerization–Not Catalytic Inactivity–of the Mutant Enzymes"}]) expect(subject.rights_list).to eq([{ 'rights' => 'Creative Commons Attribution 4.0 International', 'rightsIdentifier' => 'cc-by-4.0', 'rightsIdentifierScheme' => 'SPDX', 'rightsUri' => 'https://creativecommons.org/licenses/by/4.0/legalcode', 'schemeUri' => 'https://spdx.org/licenses/' }]) expect(subject.dates).to eq([{ 'date' => '2006-12-20', 'dateType' => 'Issued' }, - { 'date' => '2021-08-06T23:49:55Z', 'dateType' => 'Updated' }]) + { 'date' => '2021-08-06', 'dateType' => 'Updated' }]) expect(subject.publication_year).to eq('2006') expect(subject.publisher).to eq('Public Library of Science (PLoS)') expect(subject.related_identifiers.length).to eq(68) expect(subject.related_identifiers.first).to eq('relatedIdentifier' => '1932-6203', 'relatedIdentifierType' => 'ISSN', 'relationType' => 'IsPartOf', 'resourceTypeGeneral' => 'Collection') expect(subject.related_identifiers.last).to eq( 'relatedIdentifier' => '10.1056/nejm199109123251104', 'relatedIdentifierType' => 'DOI', 'relationType' => 'References' ) expect(subject.container).to eq('firstPage' => 'e30', 'identifier' => '1932-6203', 'identifierType' => 'ISSN', 'issue' => '1', 'title' => 'PLoS ONE', 'type' => 'Journal', 'volume' => '1') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'journal article with funding' do input = 'https://doi.org/10.3389/fpls.2019.00816' - subject = described_class.new(input: input) + subject = described_class.new(input: input, from: 'crossref_json') expect(subject.valid?).to be true expect(subject.id).to eq('https://doi.org/10.3389/fpls.2019.00816') - expect(subject.identifiers).to eq([{ 'identifier' => '816', - 'identifierType' => 'article_number' }]) expect(subject.url).to eq('https://www.frontiersin.org/article/10.3389/fpls.2019.00816/full') expect(subject.types).to eq('bibtex' => 'article', 'citeproc' => 'article-journal', 'resourceType' => 'JournalArticle', 'resourceTypeGeneral' => 'JournalArticle', 'ris' => 'JOUR', 'schemaOrg' => 'ScholarlyArticle') expect(subject.creators.length).to eq(4) - expect(subject.creators.first).to eq('familyName' => 'Fortes', 'givenName' => 'Ana Margarida', - 'name' => 'Fortes, Ana Margarida', 'nameType' => 'Personal') + expect(subject.creators.first).to eq('familyName' => 'Fortes', 'givenName' => 'Ana Margarida', 'name' => 'Fortes, Ana Margarida') expect(subject.titles).to eq([{ 'title' => 'Transcriptional Modulation of Polyamine Metabolism in Fruit Species Under Abiotic and Biotic Stress' }]) expect(subject.rights_list).to eq([{ 'rights' => 'Creative Commons Attribution 4.0 International', 'rightsIdentifier' => 'cc-by-4.0', 'rightsIdentifierScheme' => 'SPDX', 'rightsUri' => 'https://creativecommons.org/licenses/by/4.0/legalcode', 'schemeUri' => 'https://spdx.org/licenses/' }]) expect(subject.dates).to eq([{ 'date' => '2019-07-02', 'dateType' => 'Issued' }, - { 'date' => '2019-09-22T06:40:23Z', 'dateType' => 'Updated' }]) + { 'date' => '2019-09-22', 'dateType' => 'Updated' }]) expect(subject.publication_year).to eq('2019') expect(subject.publisher).to eq('Frontiers Media SA') expect(subject.funding_references).to eq([{ 'awardNumber' => 'CA17111', 'funderIdentifier' => 'https://doi.org/10.13039/501100000921', 'funderIdentifierType' => 'Crossref Funder ID', 'funderName' => 'COST (European Cooperation in Science and Technology)' }]) expect(subject.related_identifiers.length).to eq(70) expect(subject.related_identifiers.first).to eq('relatedIdentifier' => '1664-462X', 'relatedIdentifierType' => 'ISSN', 'relationType' => 'IsPartOf', 'resourceTypeGeneral' => 'Collection') expect(subject.related_identifiers.last).to eq( 'relatedIdentifier' => '10.17660/actahortic.2004.632.41', 'relatedIdentifierType' => 'DOI', 'relationType' => 'References' ) - expect(subject.container).to eq('firstPage' => '816', 'identifier' => '1664-462X', + expect(subject.container).to eq('identifier' => '1664-462X', 'identifierType' => 'ISSN', 'title' => 'Frontiers in Plant Science', 'type' => 'Journal', 'volume' => '10') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'journal article original language title' do input = 'https://doi.org/10.7600/jspfsm.56.60' - subject = described_class.new(input: input) + subject = described_class.new(input: input, from: 'crossref_json') expect(subject.valid?).to be true expect(subject.id).to eq('https://doi.org/10.7600/jspfsm.56.60') - expect(subject.url).to eq('https://www.jstage.jst.go.jp/article/jspfsm/56/1/56_1_60/_article/-char/ja/') + expect(subject.url).to eq('https://www.jstage.jst.go.jp/article/jspfsm/56/1/56_1_60/_article/-char/ja') expect(subject.types).to eq('bibtex' => 'article', 'citeproc' => 'article-journal', 'resourceType' => 'JournalArticle', 'resourceTypeGeneral' => 'JournalArticle', 'ris' => 'JOUR', 'schemaOrg' => 'ScholarlyArticle') expect(subject.creators).to eq([{ 'name' => ':(unav)', 'nameType' => 'Organizational' }]) - expect(subject.titles).to eq([{ 'lang' => 'ja', - 'title' => '??????????????????????????????' }]) + expect(subject.titles).to eq([{"title"=>":(unav)"}]) expect(subject.dates).to include({ 'date' => '2007', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2007') expect(subject.publisher).to eq('The Japanese Society of Physical Fitness and Sports Medicine') expect(subject.related_identifiers.length).to eq(8) expect(subject.related_identifiers.first).to eq('relatedIdentifier' => '1881-4751', 'relatedIdentifierType' => 'ISSN', 'relationType' => 'IsPartOf', 'resourceTypeGeneral' => 'Collection') expect(subject.container).to eq('firstPage' => '60', 'identifier' => '1881-4751', 'identifierType' => 'ISSN', 'issue' => '1', 'lastPage' => '60', 'title' => 'Japanese Journal of Physical Fitness and Sports Medicine', 'type' => 'Journal', 'volume' => '56') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'journal article with RDF for container' do input = 'https://doi.org/10.1163/1937240X-00002096' subject = described_class.new(input: input) @@ -171,11 +164,11 @@ 'relatedIdentifierType' => 'ISSN', 'relationType' => 'IsPartOf', 'resourceTypeGeneral' => 'Collection') expect(subject.related_identifiers.last).to eq('relatedIdentifier' => '10.1002/aqc.1122', 'relatedIdentifierType' => 'DOI', 'relationType' => 'References') expect(subject.container).to eq('firstPage' => '949', 'identifier' => '1937-240X', 'identifierType' => 'ISSN', 'issue' => '6', 'lastPage' => '961', 'title' => 'Journal of Crustacean Biology', 'type' => 'Journal', 'volume' => '32') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'book chapter with RDF for container' do input = '10.1007/978-3-642-33191-6_49' subject = described_class.new(input: input) @@ -196,11 +189,11 @@ expect(subject.related_identifiers.first).to eq( 'relatedIdentifier' => '10.1007/978-3-540-24670-1_3', 'relatedIdentifierType' => 'DOI', 'relationType' => 'References' ) expect(subject.container).to eq('identifier' => '1611-3349', 'identifierType' => 'ISSN', 'title' => 'Lecture Notes in Computer Science', 'type' => 'Book Series') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'posted_content' do input = 'https://doi.org/10.1101/097196' subject = described_class.new(input: input) @@ -217,20 +210,20 @@ 'identifierType' => 'pisa' }]) expect(subject.descriptions.first['description']).to start_with('This article presents a practical roadmap') expect(subject.dates).to include({ 'date' => '2017-10-09', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2017') expect(subject.publisher).to eq('Cold Spring Harbor Laboratory') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'peer review' do input = 'https://doi.org/10.7554/elife.55167.sa2' subject = described_class.new(input: input) expect(subject.valid?).to be true expect(subject.url).to eq('https://elifesciences.org/articles/55167#sa2') expect(subject.types).to eq('bibtex' => 'misc', 'citeproc' => 'article-journal', - 'resourceType' => 'PeerReview', 'resourceTypeGeneral' => 'PeerReview', 'ris' => 'JOUR', 'schemaOrg' => 'Review') + 'resourceType' => 'PeerReview', 'resourceTypeGeneral' => 'PeerReview', 'ris' => 'GEN', 'schemaOrg' => 'Review') expect(subject.creators.count).to eq(8) expect(subject.creators.last).to eq('affiliation' => [{ 'name' => 'Center for Computational Mathematics, Flatiron Institute, New York, United States' }], 'familyName' => 'Barnett', 'givenName' => 'Alex H', 'name' => 'Barnett, Alex H', @@ -240,11 +233,11 @@ expect(subject.identifiers.empty?).to be(true) expect(subject.descriptions.empty?).to be(true) expect(subject.dates).to include({ 'date' => '2020-05-19', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2020') expect(subject.publisher).to eq('eLife Sciences Publications, Ltd') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'dissertation' do input = 'https://doi.org/10.14264/uql.2020.791' subject = described_class.new(input: input) @@ -262,14 +255,14 @@ 'nameType' => 'Personal' }]) expect(subject.titles).to eq([{ 'title' => 'School truancy and financial independence during emerging adulthood: a longitudinal analysis of receipt of and reliance on cash transfers' }]) expect(subject.id).to eq('https://doi.org/10.14264/uql.2020.791') expect(subject.identifiers.empty?).to be(true) expect(subject.descriptions.empty?).to be(true) - expect(subject.dates).to include({ 'date' => '2020-06-08', 'dateType' => 'Issued' }) + expect(subject.dates).to eq([{"date"=>"2020-06-08", "dateType"=>"Issued"}, {"date"=>"2020-06-08T05:08:59Z", "dateType"=>"Updated"}]) expect(subject.publication_year).to eq('2020') expect(subject.publisher).to eq('University of Queensland Library') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'DOI with SICI DOI' do input = 'https://doi.org/10.1890/0012-9658(2006)87[2832:tiopma]2.0.co;2' subject = described_class.new(input: input) @@ -293,11 +286,11 @@ 'relatedIdentifierType' => 'ISSN', 'relationType' => 'IsPartOf', 'resourceTypeGeneral' => 'Collection') expect(subject.related_identifiers.last).to eq('relatedIdentifier' => '10.1098/rspb.2002.2213', 'relatedIdentifierType' => 'DOI', 'relationType' => 'References') expect(subject.container).to eq('firstPage' => '2832', 'identifier' => '0012-9658', 'identifierType' => 'ISSN', 'issue' => '11', 'lastPage' => '2841', 'title' => 'Ecology', 'type' => 'Journal', 'volume' => '87') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'DOI with ORCID ID' do input = 'https://doi.org/10.1155/2012/291294' subject = described_class.new(input: input) @@ -323,11 +316,11 @@ 'relatedIdentifierType' => 'ISSN', 'relationType' => 'IsPartOf', 'resourceTypeGeneral' => 'Collection') expect(subject.related_identifiers.last).to eq('relatedIdentifier' => '10.1378/chest.12-0045', 'relatedIdentifierType' => 'DOI', 'relationType' => 'References') expect(subject.container).to eq('firstPage' => '1', 'identifier' => '2090-1844', 'identifierType' => 'ISSN', 'lastPage' => '7', 'title' => 'Pulmonary Medicine', 'type' => 'Journal', 'volume' => '2012') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'date in future' do input = 'https://doi.org/10.1016/j.ejphar.2015.03.018' subject = described_class.new(input: input) @@ -607,11 +600,11 @@ { 'relatedIdentifier' => '10.1111/hiv.12134', 'relatedIdentifierType' => 'DOI', 'relationType' => 'References' }]) expect(subject.container).to eq('firstPage' => '303', 'identifier' => '0014-2999', 'identifierType' => 'ISSN', 'lastPage' => '312', 'title' => 'European Journal of Pharmacology', 'type' => 'Journal', 'volume' => '759') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'vor with url' do input = 'https://doi.org/10.1038/hdy.2013.26' subject = described_class.new(input: input) @@ -630,49 +623,49 @@ expect(subject.related_identifiers.size).to eq(35) expect(subject.related_identifiers.first).to eq('relatedIdentifier' => '1365-2540', 'relatedIdentifierType' => 'ISSN', 'relationType' => 'IsPartOf', 'resourceTypeGeneral' => 'Collection') expect(subject.container).to eq('firstPage' => '122', 'identifier' => '1365-2540', 'identifierType' => 'ISSN', 'issue' => '2', 'lastPage' => '130', 'title' => 'Heredity', 'type' => 'Journal', 'volume' => '111') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'dataset' do input = '10.2210/pdb4hhb/pdb' subject = described_class.new(input: input) expect(subject.valid?).to be true expect(subject.id).to eq('https://doi.org/10.2210/pdb4hhb/pdb') expect(subject.url).to eq('https://www.wwpdb.org/pdb?id=pdb_00004hhb') expect(subject.types).to eq('bibtex' => 'misc', 'citeproc' => 'article-journal', - 'resourceType' => 'SaComponent', 'resourceTypeGeneral' => 'Text', 'ris' => 'JOUR', 'schemaOrg' => 'ScholarlyArticle') + 'resourceType' => 'SaComponent', 'resourceTypeGeneral' => 'Text', 'ris' => 'GEN', 'schemaOrg' => 'CreativeWork') expect(subject.creators.length).to eq(2) expect(subject.creators.first).to eq('nameType' => 'Personal', 'name' => 'Fermi, G.', 'givenName' => 'G.', 'familyName' => 'Fermi') expect(subject.titles).to eq([{ 'title' => 'THE CRYSTAL STRUCTURE OF HUMAN DEOXYHAEMOGLOBIN AT 1.74 ANGSTROMS RESOLUTION' }]) expect(subject.descriptions).to eq([{ 'description' => 'x-ray diffraction structure', 'descriptionType' => 'Other' }]) expect(subject.dates).to include({ 'date' => '1984-07-17', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('1984') expect(subject.publisher).to eq('Worldwide Protein Data Bank') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'component' do input = '10.1371/journal.pmed.0030277.g001' subject = described_class.new(input: input) expect(subject.valid?).to be true expect(subject.id).to eq('https://doi.org/10.1371/journal.pmed.0030277.g001') expect(subject.url).to eq('https://dx.plos.org/10.1371/journal.pmed.0030277.g001') expect(subject.types).to eq('bibtex' => 'misc', 'citeproc' => 'article-journal', - 'resourceType' => 'SaComponent', 'resourceTypeGeneral' => 'Text', 'ris' => 'JOUR', 'schemaOrg' => 'ScholarlyArticle') + 'resourceType' => 'SaComponent', 'resourceTypeGeneral' => 'Text', 'ris' => 'GEN', 'schemaOrg' => 'CreativeWork') expect(subject.creators).to eq([{ 'name' => ':(unav)', 'nameType' => 'Organizational' }]) expect(subject.titles).to eq([{ 'title' => ':(unav)' }]) expect(subject.descriptions.empty?).to be(true) expect(subject.dates).to eq([{ 'date' => '2015-10-20', 'dateType' => 'Issued' }, - { 'date' => '2018-10-19T17:13:42Z', 'dateType' => 'Updated' }]) + {"date"=>"2018-10-19T21:13:42Z", "dateType"=>"Updated"}]) expect(subject.publication_year).to eq('2015') expect(subject.publisher).to eq('Public Library of Science (PLoS)') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'dataset usda' do input = 'https://doi.org/10.2737/RDS-2018-0001' subject = described_class.new(input: input) @@ -688,11 +681,11 @@ expect(subject.descriptions.empty?).to be(true) expect(subject.dates).to eq([{ 'date' => '2017-08-09', 'dateType' => 'Issued' }, { 'date' => '2021-07-01T22:10:21Z', 'dateType' => 'Updated' }]) expect(subject.publication_year).to eq('2017') expect(subject.publisher).to eq('USDA Forest Service') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'book chapter' do input = 'https://doi.org/10.1007/978-3-662-46370-3_13' subject = described_class.new(input: input) @@ -704,14 +697,14 @@ expect(subject.creators.length).to eq(2) expect(subject.creators.first).to eq('nameType' => 'Personal', 'name' => 'Diercks, Ronald L.', 'givenName' => 'Ronald L.', 'familyName' => 'Diercks') expect(subject.titles).to eq([{ 'title' => 'Clinical Symptoms and Physical Examinations' }]) expect(subject.dates).to eq([{ 'date' => '2015', 'dateType' => 'Issued' }, - { 'date' => '2015-04-14T02:31:13Z', 'dateType' => 'Updated' }]) + { 'date' => '2015-04-13T22:31:13Z', 'dateType' => 'Updated' }]) expect(subject.publication_year).to eq('2015') expect(subject.publisher).to eq('Springer Science and Business Media LLC') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.container['type']).to eq('Book') expect(subject.container['title']).to eq('Shoulder Stiffness') expect(subject.container['firstPage']).to eq('155') expect(subject.container['lastPage']).to eq('158') expect(subject.container['identifiers']).to eq([{ 'identifier' => '978-3-662-46369-7', @@ -730,11 +723,11 @@ 'name' => 'Jones, Hunter M.', 'nameType' => 'Personal' }]) expect(subject.titles).to eq([{ 'title' => 'Climate Change and Increasing Risk of Extreme Heat' }]) expect(subject.dates).to include({ 'date' => '2018', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2018') expect(subject.publisher).to eq('Springer Science and Business Media LLC') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.container['type']).to eq('Book Series') expect(subject.container['title']).to eq('SpringerBriefs in Medical Earth Sciences') expect(subject.container['identifier']).to eq('2523-3629') expect(subject.container['identifierType']).to eq('ISSN') end @@ -749,14 +742,14 @@ 'resourceType' => 'BookChapter', 'resourceTypeGeneral' => 'BookChapter', 'ris' => 'CHAP', 'schemaOrg' => 'Chapter') expect(subject.creators).to eq([{ 'affiliation' => [{ 'name' => 'Universit?? de Lyon, France' }], 'familyName' => 'Bichot', 'givenName' => 'Charles-Edmond', 'name' => 'Bichot, Charles-Edmond', 'nameType' => 'Personal' }]) expect(subject.titles).to eq([{ 'title' => 'Unsupervised and Supervised Image Segmentation Using Graph Partitioning' }]) expect(subject.dates).to eq([{ 'date' => '2012-08-08', 'dateType' => 'Issued' }, - { 'date' => '2019-07-02T17:17:21Z', 'dateType' => 'Updated' }]) + {"date"=>"2019-07-02T13:17:21Z", "dateType"=>"Updated"}]) expect(subject.publication_year).to eq('2012') expect(subject.publisher).to eq('IGI Global') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.container['type']).to eq('Book') expect(subject.container['title']).to eq('Graph-Based Methods in Computer Vision') expect(subject.container['firstPage']).to eq('72') expect(subject.container['lastPage']).to eq('94') expect(subject.container['identifiers']).to eq([{ 'identifier' => '9781466618916', @@ -790,11 +783,11 @@ expect(subject.titles).to eq([{ 'title' => 'Converting the Literature of a Scientific Field to Open Access through Global Collaboration: The Experience of SCOAP3 in Particle Physics' }]) expect(subject.dates).to eq([{ 'date' => '2018-04-09', 'dateType' => 'Issued' }, { 'date' => '2021-07-22T10:05:05Z', 'dateType' => 'Updated' }]) expect(subject.publication_year).to eq('2018') expect(subject.publisher).to eq('MDPI AG') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'book' do input = 'https://doi.org/10.1017/9781108348843' subject = described_class.new(input: input) @@ -810,11 +803,11 @@ expect(subject.titles).to eq([{ 'title' => 'The Politics of the Past in Early China' }]) expect(subject.dates).to eq([{ 'date' => '2019-07-01', 'dateType' => 'Issued' }, { 'date' => '2022-09-22T13:22:42Z', 'dateType' => 'Updated' }]) expect(subject.publication_year).to eq('2019') expect(subject.publisher).to eq('Cambridge University Press (CUP)') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered).to eq('2019-07-06T10:19:22Z') end it 'another book' do input = 'https://doi.org/10.2973/odp.proc.ir.180.2000' @@ -831,11 +824,11 @@ expect(subject.titles).to eq([{ 'title' => 'Proceedings of the Ocean Drilling Program, 180 Initial Reports' }]) expect(subject.dates).to eq([{ 'date' => '2000-02-04', 'dateType' => 'Issued' }, { 'date' => '2009-02-02T21:19:43Z', 'dateType' => 'Updated' }]) expect(subject.publication_year).to eq('2000') expect(subject.publisher).to eq('International Ocean Discovery Program (IODP)') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered).to eq('2006-10-17T20:17:44Z') end it 'yet another book' do input = 'https://doi.org/10.1029/ar035' @@ -858,11 +851,11 @@ expect(subject.related_identifiers.first).to eq( 'relatedIdentifier' => '10.1016/0031-0182(70)90103-3', 'relatedIdentifierType' => 'DOI', 'relationType' => 'References' ) expect(subject.container).to eq('identifier' => '0066-4634', 'identifierType' => 'ISSN', 'title' => 'Antarctic Research Series', 'type' => 'Book Series', 'volume' => '35') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered.nil?).to be(true) end it 'mEDRA' do input = 'https://doi.org/10.3280/ecag2018-001005' @@ -879,11 +872,11 @@ 'name' => 'Oh, Sohae Eve', 'nameType' => 'Personal') expect(subject.titles).to eq([{ 'title' => 'Substitutability between organic and conventional poultry products and organic price premiums' }]) expect(subject.dates).to include({ 'date' => '2018-05', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2018') expect(subject.publisher).to eq('Franco Angeli') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'KISTI' do input = 'https://doi.org/10.5012/bkcs.2013.34.10.2889' subject = described_class.new(input: input) @@ -897,11 +890,11 @@ expect(subject.creators.length).to eq(7) expect(subject.creators.first).to eq('familyName' => 'Huang', 'givenName' => 'Guimei', 'name' => 'Huang, Guimei', 'nameType' => 'Personal') expect(subject.titles).to eq([{ 'title' => 'Synthesis, Crystal Structure and Theoretical Calculation of a Novel Nickel(II) Complex with Dibromotyrosine and 1,10-Phenanthroline' }]) expect(subject.dates).to eq([{ 'date' => '2013-10-20', 'dateType' => 'Issued' }, - { 'date' => '2016-12-14T21:40:52Z', 'dateType' => 'Updated' }]) + { 'date' => '2016-12-15T02:40:52Z', 'dateType' => 'Updated' }]) expect(subject.publication_year).to eq('2013') expect(subject.publisher).to eq('Korean Chemical Society') expect(subject.agency).to eq('KISTI') end @@ -955,11 +948,11 @@ { 'title' => 'Distances, absence, proximit??s et pr??sences??: des concepts en d??placement' }, { 'title' => 'Distance(s), proximity and presence(s): evolving concepts' } ]) expect(subject.dates).to include({ 'date' => '2014-12-14', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2014') expect(subject.publisher).to eq('OpenEdition') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered.nil?).to be(true) end it 'multiple titles with missing' do input = 'https://doi.org/10.1186/1471-2164-7-187' @@ -991,11 +984,11 @@ 'nameType' => 'Personal' }]) expect(subject.titles).to eq([{ 'title' => 'Finding function: evaluation methods for functional genomic data' }]) expect(subject.dates).to include({ 'date' => '2006-07-25', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2006') expect(subject.publisher).to eq('Springer Science and Business Media LLC') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered).to eq('2021-08-31T17:31:49Z') end it 'markup' do input = 'https://doi.org/10.1098/rspb.2017.0132' @@ -1013,11 +1006,11 @@ ) expect(subject.titles).to eq([{ 'title' => 'Sexual conflict and correlated evolution between male persistence and female resistance traits in the seed beetle <i>Callosobruchus maculatus</i>' }]) expect(subject.dates).to include({ 'date' => '2017-05-24', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2017') expect(subject.publisher).to eq('The Royal Society') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered).to eq('2021-02-14T10:36:45Z') end it 'empty given name' do input = 'https://doi.org/10.1111/J.1865-1682.2010.01171.X' @@ -1086,11 +1079,11 @@ 'relatedIdentifierType' => 'ISSN', 'relationType' => 'IsPartOf', 'resourceTypeGeneral' => 'Collection') expect(subject.related_identifiers.last).to eq('relatedIdentifier' => '10.1002/pmic.201400530', 'relatedIdentifierType' => 'DOI', 'relationType' => 'References') expect(subject.container).to eq('firstPage' => '929', 'identifier' => '0028-646X', 'identifierType' => 'ISSN', 'issue' => '3', 'lastPage' => '935', 'title' => 'New Phytologist', 'type' => 'Journal', 'volume' => '218') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered).to eq('2018-08-03T11:45:49Z') end it 'author literal' do input = 'https://doi.org/10.1038/ng.3834' @@ -1105,11 +1098,11 @@ 'nameType' => 'Organizational') expect(subject.titles).to eq([{ 'title' => 'The impact of structural variation on human gene expression' }]) expect(subject.dates).to include({ 'date' => '2017-04-03', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2017') expect(subject.publisher).to eq('Springer Science and Business Media LLC') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered).to eq('2019-11-02T09:30:06Z') end it 'affiliation is space' do input = 'https://doi.org/10.1177/0042098011428175' @@ -1124,11 +1117,11 @@ 'familyName' => 'Petrovici', 'givenName' => 'Norbert', 'name' => 'Petrovici, Norbert', 'nameType' => 'Personal') expect(subject.titles).to eq([{ 'title' => 'Workers and the City: Rethinking the Geographies of Power in Post-socialist Urbanisation' }]) expect(subject.dates).to include({ 'date' => '2011-12-22', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2011') expect(subject.publisher).to eq('SAGE Publications') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered).to eq('2021-05-16T02:02:38Z') end it 'multiple issn' do input = 'https://doi.org/10.1007/978-3-642-34922-5_19' @@ -1145,11 +1138,11 @@ expect(subject.dates).to include({ 'date' => '2013', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2013') expect(subject.publisher).to eq('Springer Science and Business Media LLC') expect(subject.container).to eq('identifier' => '1860-0808', 'identifierType' => 'ISSN', 'title' => 'Studies in Fuzziness and Soft Computing', 'type' => 'Book Series') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered).to eq('2012-10-31T16:15:44Z') end it 'article id as page number' do input = 'https://doi.org/10.1103/physrevlett.120.117701' @@ -1166,11 +1159,11 @@ expect(subject.dates).to include({ 'date' => '2018-03-13', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2018') expect(subject.publisher).to eq('American Physical Society (APS)') expect(subject.container).to eq('firstPage' => '117701', 'identifier' => '1079-7114', 'identifierType' => 'ISSN', 'issue' => '11', 'title' => 'Physical Review Letters', 'type' => 'Journal', 'volume' => '120') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.date_registered).to eq('2018-03-13T15:18:48Z') end it 'posted content copernicus' do input = 'https://doi.org/10.5194/CP-2020-95' @@ -1189,11 +1182,11 @@ expect(subject.identifiers.empty?).to be(true) expect(subject.descriptions.first['description']).to start_with('Abstract. During the early last glacial termination') expect(subject.dates).to include({ 'date' => '2020-07-28', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2020') expect(subject.publisher).to eq('Copernicus GmbH') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'book oup' do input = '10.1093/oxfordhb/9780198746140.013.5' subject = described_class.new(input: input) @@ -1212,11 +1205,11 @@ expect(subject.identifiers.empty?).to be(true) expect(subject.descriptions.first['description']).to start_with('This chapter explores the nature of the connections') expect(subject.dates).to include({ 'date' => '2018-04-05', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2018') expect(subject.publisher).to eq('Oxford University Press (OUP)') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'report osti' do input = '10.2172/972169' subject = described_class.new(input: input) @@ -1236,11 +1229,11 @@ ]) expect(subject.descriptions.empty?).to be(true) expect(subject.dates).to include({ 'date' => '2010-01-01', 'dateType' => 'Issued' }) expect(subject.publication_year).to eq('2010') expect(subject.publisher).to eq('Office of Scientific and Technical Information (OSTI)') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'journal issue' do input = 'https://doi.org/10.6002/ect.2015.0371' subject = described_class.new(input: input) @@ -1258,19 +1251,19 @@ expect(subject.related_identifiers.length).to eq(2) expect(subject.related_identifiers.first).to eq('relatedIdentifier' => '2146-8427', 'relatedIdentifierType' => 'ISSN', 'relationType' => 'IsPartOf', 'resourceTypeGeneral' => 'Collection') expect(subject.container).to eq('identifier' => '2146-8427', 'identifierType' => 'ISSN', 'issue' => '5', 'title' => 'Experimental and Clinical Transplantation', 'type' => 'Journal', 'volume' => '16') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') end it 'not found error' do input = 'https://doi.org/10.7554/elife.01567x' subject = described_class.new(input: input) expect(subject.valid?).to be false expect(subject.id).to eq('https://doi.org/10.7554/elife.01567x') expect(subject.doi).to eq('10.7554/elife.01567x') - expect(subject.agency).to eq('crossref') + expect(subject.agency).to eq('Crossref') expect(subject.state).to eq('not_found') end end end