Skip to content

Commit

Permalink
Issue-1602 Added test case for normalizing ORCID ids with and withou … (
Browse files Browse the repository at this point in the history
#164)

* Issue-1602 Added test case for normalizing ORCID ids with and wihtou schemeURI

* issues-1602 Remove leading and trailing spaces from ORCID id before nomrmalization

* issues-1602 Update gem version

* Revert "issues-1602 Update gem version"

This reverts commit c03b47a.
  • Loading branch information
ashwinisukale authored Oct 5, 2023
1 parent 0f4d64d commit 7b3e8cd
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 4 deletions.
1 change: 1 addition & 0 deletions lib/bolognese/author_utils.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ def get_one_author(author)
name_type = parse_attributes(author.fetch("creatorName", nil), content: "nameType", first: true) || parse_attributes(author.fetch("contributorName", nil), content: "nameType", first: true)

name_identifiers = Array.wrap(author.fetch("nameIdentifier", nil)).map do |ni|
ni["__content__"] = ni["__content__"].strip
if ni["nameIdentifierScheme"] == "ORCID"
{
"nameIdentifier" => normalize_orcid(ni["__content__"]),
Expand Down
27 changes: 25 additions & 2 deletions spec/author_utils_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,10 @@
end

context "affiliationIdentifier" do
let(:input) { fixture_path + 'datacite-example-ROR-nameIdentifiers.xml' }
subject { Bolognese::Metadata.new(input: input, from: "datacite") }

it "should normalize ROR affiliationIdentifier with and without URL" do
input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
subject = Bolognese::Metadata.new(input: input, from: "datacite")
# without URL inside affiliationIdentifier="05bp8ka77"
ror_affiliater0 = subject.creators[0]["affiliation"].select { |r| r["affiliationIdentifierScheme"] == "ROR" }
expect(ror_affiliater0[0]["affiliationIdentifier"]).to eq("https://ror.org/05bp8ka77")
Expand All @@ -184,6 +185,28 @@
expect(ror_affiliater1[0]["affiliationIdentifier"]).to eq("https://ror.org/05bp8ka05")
end

it "should normalize the valid ORCID nameIdentifier to URL with schemeURI" do
# with "schemeURI"
# ORICD normalization 0000-0001-9998-0117 => https://orcid.org/0000-0001-9998-0117
expect(subject.creators[0]["nameIdentifiers"]).to eq([{"nameIdentifier"=>"https://orcid.org/0000-0001-9998-0117", "schemeUri"=>"https://orcid.org", "nameIdentifierScheme"=>"ORCID"}])
end

it "should normalize the valid ORCID nameIdentifier to URL without schemeURI" do
# without "schemeURI"
# ORICD normalization 0000-0001-9998-0117 => https://orcid.org/0000-0001-9998-0117
expect(subject.creators[7]["nameIdentifiers"]).to eq([{"nameIdentifier"=>"https://orcid.org/0000-0001-9998-0117", "schemeUri"=>"https://orcid.org", "nameIdentifierScheme"=>"ORCID"}])
end

it "should keep nameIdentifier URL after normalization" do
# ORICD normalization https://orcid.org/0000-0001-9998-0114 => https://orcid.org/0000-0001-9998-0114
expect(subject.creators[1]["nameIdentifiers"]).to eq([{"nameIdentifier"=>"https://orcid.org/0000-0001-9998-0114", "schemeUri"=>"https://orcid.org", "nameIdentifierScheme"=>"ORCID"}])
end

it "should sanitize valid ORCID id/URL before normalization" do
#" 0000-0001-9998-0118 ", # Valid ORCID with leading/trailing spaces
expect(subject.creators[8]["nameIdentifiers"]).to eq([{"nameIdentifier"=>"https://orcid.org/0000-0001-9998-0118", "schemeUri"=>"https://orcid.org", "nameIdentifierScheme"=>"ORCID"}])
end

it "should parse non ROR schema's without normalizing them" do
input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
subject = Bolognese::Metadata.new(input: input, from: "datacite")
Expand Down
12 changes: 10 additions & 2 deletions spec/fixtures/datacite-example-ROR-nameIdentifiers.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
<creators>
<creator>
<creatorName nameType="Personal">Ashwini Sukale</creatorName>
<nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID"> https://orcid.org/0000-0001-9998-0117 </nameIdentifier>
<nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID">0000-0001-9998-0117</nameIdentifier>
<affiliation affiliationIdentifier="05bp8ka77" affiliationIdentifierScheme="ROR"> Metadata Game Changers </affiliation>
<affiliation affiliationIdentifier="grid.268117.b" affiliationIdentifierScheme="GRID">Wesleyan University</affiliation>
</creator>
<creator>
<creatorName nameType="Personal">Erin Robinson</creatorName>
<nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID"> https://orcid.org/0000-0001-9998-0114 </nameIdentifier>
<nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID">https://orcid.org/0000-0001-9998-0114</nameIdentifier>
<affiliation schemeURI="https://ror.org" affiliationIdentifier="https://ror.org/05bp8ka05" affiliationIdentifierScheme="ROR"> Metadata Game Changers </affiliation>
<affiliation affiliationIdentifier="grid.268117.b" affiliationIdentifierScheme="GRID" schemeURI="https://grid.ac/institutes/">Wesleyan University</affiliation>
</creator>
Expand All @@ -35,6 +35,14 @@
<creatorName nameType="Organizational">جامعة زاخۆ</creatorName>
<nameIdentifier nameIdentifierScheme="RORS" schemeURI="https://ror.org">05sd1pz50</nameIdentifier>
</creator>
<creator>
<creatorName nameType="Personal">Ashwini S</creatorName>
<nameIdentifier nameIdentifierScheme="ORCID">0000-0001-9998-0117</nameIdentifier>
</creator>
<creator>
<creatorName nameType="Personal">Mike B</creatorName>
<nameIdentifier nameIdentifierScheme="ORCID"> 0000-0001-9998-0118 </nameIdentifier>
</creator>
</creators>
<titles>
<title xml:lang="en-US">Genomic Standards Consortium (GSC) Island Sampling Day: Moorea Reef to Ridges Genomic Transect</title>
Expand Down

0 comments on commit 7b3e8cd

Please sign in to comment.