Skip to content

Commit

Permalink
Add unit tests for the purl method
Browse files Browse the repository at this point in the history
  • Loading branch information
jvendetti committed Jul 11, 2023
1 parent 8a1ec97 commit 36a3ae8
Showing 1 changed file with 57 additions and 0 deletions.
57 changes: 57 additions & 0 deletions test/models/test_class.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# frozen_string_literal: true

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

class ClassTest < LinkedData::Client::TestCase
Expand All @@ -13,4 +16,58 @@ def test_find
assert_equal ontology, cls.links['ontology']
assert_true cls.hasChildren
end

# Test PURL generation for a class in an OWL format ontology
def test_purl_owl
cls = LinkedData::Client::Models::Class.find(
'http://bioontology.org/ontologies/Activity.owl#Activity',
'https://data.bioontology.org/ontologies/BRO'
)
refute_nil cls

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
end

# Test PURL generation for a class in a UMLS format ontology
def test_purl_umls
cls = LinkedData::Client::Models::Class.find(
'http://purl.bioontology.org/ontology/SNOMEDCT/64572001',
'https://bioportal.bioontology.org/ontologies/SNOMEDCT'
)
refute_nil cls

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
end

# Test PURL generation for a class in an OBO format ontology
def test_purl_obo
cls = LinkedData::Client::Models::Class.find(
'http://purl.obolibrary.org/obo/DOID_4',
'https://bioportal.bioontology.org/ontologies/DOID'
)
refute_nil cls

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
end

private

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

0 comments on commit 36a3ae8

Please sign in to comment.