Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ GEM
unicode-display_width (3.1.4)
unicode-emoji (~> 4.0, >= 4.0.4)
unicode-emoji (4.0.4)
uri (1.0.2)
uri (1.0.3)

PLATFORMS
arm64-darwin-24
Expand Down
37 changes: 21 additions & 16 deletions test/models/test_class.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# frozen_string_literal: true

require 'faraday/follow_redirects'
require_relative '../test_case'

class ClassTest < LinkedData::Client::TestCase
@@purl_prefix = LinkedData::Client.settings.purl_prefix

def test_find
id = 'http://bioontology.org/ontologies/Activity.owl#Activity'
ontology = 'https://data.bioontology.org/ontologies/BRO'
Expand All @@ -24,12 +25,13 @@ def test_purl_owl
'https://data.bioontology.org/ontologies/BRO'
)
refute_nil cls
expected_purl = "#{@@purl_prefix}/BRO?conceptid=http%3A%2F%2Fbioontology.org%2Fontologies%2FActivity.owl%23Activity"
assert_equal expected_purl, cls.purl

res = fetch_response(cls.purl)
assert_equal 200, res.status
assert_equal 'https://bioportal.bioontology.org/ontologies/BRO'\
'?p=classes&conceptid=http%3A%2F%2Fbioontology.org%2Fontologies%2FActivity.owl%23Activity',
res.env[:url].to_s
assert_equal 302, res.status
assert_equal 'https://bioportal.bioontology.org/ontologies/BRO/classes?conceptid=http%3A%2F%2Fbioontology.org%2Fontologies%2FActivity.owl%23Activity',
res.headers['location']
end

# Test PURL generation for a class in a UMLS format ontology
Expand All @@ -40,10 +42,13 @@ def test_purl_umls
)
refute_nil cls

# The ID already contains the PURL host, so .purl should return it as-is
assert_equal cls.id, cls.purl

res = fetch_response(cls.purl)
assert_equal 200, res.status
assert_equal 'https://bioportal.bioontology.org/ontologies/SNOMEDCT?p=classes&conceptid=64572001',
res.env[:url].to_s
assert_equal 302, res.status
assert_equal 'https://bioportal.bioontology.org/ontologies/SNOMEDCT/classes/64572001',
res.headers['location']
end

# Test PURL generation for a class in an OBO format ontology
Expand All @@ -54,20 +59,20 @@ def test_purl_obo
)
refute_nil cls

expected_purl = "#{@@purl_prefix}/DOID?conceptid=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FDOID_4"
assert_equal expected_purl, cls.purl

res = fetch_response(cls.purl)
assert_equal 200, res.status
assert_equal 'https://bioportal.bioontology.org/ontologies/DOID'\
'?p=classes&conceptid=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FDOID_4',
res.env[:url].to_s
assert_equal 302, res.status
assert_equal 'https://bioportal.bioontology.org/ontologies/DOID/classes?conceptid=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FDOID_4',
res.headers['location']
end

private

def fetch_response(url)
conn = Faraday.new do |f|
f.response :follow_redirects
Faraday.new do |f|
f.adapter Faraday.default_adapter
end
conn.get(url)
end.get(url)
end
end