Skip to content

Commit

Permalink
update Goo version and add submissions filters test
Browse files Browse the repository at this point in the history
  • Loading branch information
syphax-bouazzouni committed Sep 21, 2023
1 parent 0962139 commit ea90027
Show file tree
Hide file tree
Showing 2 changed files with 140 additions and 5 deletions.
12 changes: 7 additions & 5 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ GIT

GIT
remote: https://github.com/ontoportal-lirmm/goo.git
revision: 0c0dba92e28fd8c8261db1b3183946e0cf183b53
revision: 0019b4b7b6e18be15fe068084510c03b674d23d8
branch: development
specs:
goo (0.0.2)
Expand Down Expand Up @@ -53,7 +53,7 @@ GIT

GIT
remote: https://github.com/ontoportal-lirmm/ontologies_linked_data.git
revision: 1204ede68ed0a5af5e3fb355172496d5e0134544
revision: 4c89c8346766d23e09b24c8e29750bf3a91e6b53
branch: development
specs:
ontologies_linked_data (0.0.1)
Expand Down Expand Up @@ -110,6 +110,7 @@ GEM
backports (3.24.1)
bcrypt (3.1.19)
bcrypt_pbkdf (1.1.0)
benchmark-ips (2.12.0)
bigdecimal (1.4.2)
builder (3.2.4)
capistrano (3.17.3)
Expand Down Expand Up @@ -173,7 +174,7 @@ GEM
retriable (>= 2.0, < 4.a)
rexml
webrick
googleauth (1.8.0)
googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
multi_json (~> 1.11)
Expand Down Expand Up @@ -225,7 +226,7 @@ GEM
timeout
net-scp (4.0.0)
net-ssh (>= 2.6.5, < 8.0.0)
net-smtp (0.3.3)
net-smtp (0.4.0)
net-protocol
net-ssh (7.2.0)
netrc (0.11.0)
Expand Down Expand Up @@ -354,6 +355,7 @@ PLATFORMS
DEPENDENCIES
activesupport (~> 3.1)
bcrypt_pbkdf (>= 1.0, < 2.0)
benchmark-ips (~> 2.12)
bigdecimal (= 1.4.2)
capistrano (~> 3)
capistrano-bundler
Expand Down Expand Up @@ -405,4 +407,4 @@ DEPENDENCIES
webmock

BUNDLED WITH
2.3.23
2.4.12
133 changes: 133 additions & 0 deletions test/controllers/test_ontology_submissions_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,139 @@ def test_submissions_pagination
assert_equal 1, submissions["collection"].length
end

def test_submissions_pagination_filter
num_onts_created, created_ont_acronyms, ontologies = create_ontologies_and_submissions(ont_count: 10, submission_count: 1)
group1 = LinkedData::Models::Group.new(acronym: 'group-1', name: "Test Group 1").save
group2 = LinkedData::Models::Group.new(acronym: 'group-2', name: "Test Group 2").save
category1 = LinkedData::Models::Category.new(acronym: 'category-1', name: "Test Category 1").save
category2 = LinkedData::Models::Category.new(acronym: 'category-2', name: "Test Category 2").save

ontologies1 = ontologies[0..5].each do |o|
o.bring_remaining
o.group = [group1]
o.hasDomain = [category1]
o.save
end

ontologies2 = ontologies[6..8].each do |o|
o.bring_remaining
o.group = [group2]
o.hasDomain = [category2]
o.save
end



# test filter by group and category
get "/submissions?page=1&pagesize=100&group=#{group1.acronym}"
assert last_response.ok?
assert_equal ontologies1.size, MultiJson.load(last_response.body)["collection"].length
get "/submissions?page=1&pagesize=100&group=#{group2.acronym}"
assert last_response.ok?
assert_equal ontologies2.size, MultiJson.load(last_response.body)["collection"].length
get "/submissions?page=1&pagesize=100&hasDomain=#{category1.acronym}"
assert last_response.ok?
assert_equal ontologies1.size, MultiJson.load(last_response.body)["collection"].length
get "/submissions?page=1&pagesize=100&hasDomain=#{category2.acronym}"
assert last_response.ok?
assert_equal ontologies2.size, MultiJson.load(last_response.body)["collection"].length
get "/submissions?page=1&pagesize=100&hasDomain=#{category2.acronym}&group=#{group1.acronym}"
assert last_response.ok?
assert_equal 0, MultiJson.load(last_response.body)["collection"].length
get "/submissions?page=1&pagesize=100&hasDomain=#{category2.acronym}&group=#{group2.acronym}"
assert last_response.ok?
assert_equal ontologies2.size, MultiJson.load(last_response.body)["collection"].length

ontologies3 = ontologies[9]
ontologies3.bring_remaining
ontologies3.group = [group1, group2]
ontologies3.hasDomain = [category1, category2]
ontologies3.name = "name search test"
ontologies3.save

# test search with acronym
[
[ 1, ontologies.first.acronym],
[ 1, ontologies.last.acronym],
[ontologies.size, 'TEST-ONT']
].each do |count, acronym_search|
get "/submissions?page=1&pagesize=100&acronym=#{acronym_search}"
assert last_response.ok?
submissions = MultiJson.load(last_response.body)
assert_equal count, submissions["collection"].length
end


# test search with name
[
[ 1, ontologies.first.name],
[ 1, ontologies.last.name],
[ontologies.size - 1, 'TEST-ONT']
].each do |count, name_search|
get "/submissions?page=1&pagesize=100&name=#{name_search}"
assert last_response.ok?
submissions = MultiJson.load(last_response.body)
binding.pry unless submissions["collection"].length.eql?(count)
assert_equal count, submissions["collection"].length
end

# test search with name and acronym
# search by name
get "/submissions?page=1&pagesize=100&name=search&acronym=search"
assert last_response.ok?
submissions = MultiJson.load(last_response.body)
assert_equal 1, submissions["collection"].length
# search by acronym
get "/submissions?page=1&pagesize=100&name=9&acronym=9"
assert last_response.ok?
submissions = MultiJson.load(last_response.body)
assert_equal 1, submissions["collection"].length
# search by acronym or name
get "/submissions?page=1&pagesize=100&name=search&acronym=8"
assert last_response.ok?
submissions = MultiJson.load(last_response.body)
assert_equal 2, submissions["collection"].length

ontologies.first.name = "sort by test"
ontologies.first.save
sub = ontologies.first.latest_submission(status: :any).bring_remaining
sub.creationDate = DateTime.yesterday.to_datetime
sub.hasOntologyLanguage = LinkedData::Models::OntologyFormat.find('SKOS').first
sub.save

#test search with sort
get "/submissions?page=1&pagesize=100&acronym=tes&name=tes&order_by=ontology_name"
assert last_response.ok?
submissions = MultiJson.load(last_response.body)
refute_empty submissions["collection"]
assert_equal ontologies.map{|x| x.name}.sort, submissions["collection"].map{|x| x["ontology"]["name"]}

get "/submissions?page=1&pagesize=100&acronym=tes&name=tes&order_by=creationDate"
assert last_response.ok?
submissions = MultiJson.load(last_response.body)
refute_empty submissions["collection"]
assert_equal ontologies.map{|x| x.latest_submission(status: :any).bring(:creationDate).creationDate}.sort.map(&:to_s), submissions["collection"].map{|x| x["creationDate"]}.reverse

# test search with format
get "/submissions?page=1&pagesize=100&acronym=tes&name=tes&hasOntologyLanguage=SKOS"
assert last_response.ok?
submissions = MultiJson.load(last_response.body)
refute_empty submissions["collection"]
assert_equal 1, submissions["collection"].size

get "/submissions?page=1&pagesize=100&acronym=tes&name=tes&hasOntologyLanguage=OWL"
assert last_response.ok?
submissions = MultiJson.load(last_response.body)
refute_empty submissions["collection"]
assert_equal ontologies.size-1 , submissions["collection"].size

# test ontology filter with submission filter attributes
get "/submissions?page=1&pagesize=100&acronym=tes&name=tes&group=group-2&category=category-2&hasOntologyLanguage=OWL"
assert last_response.ok?
submissions = MultiJson.load(last_response.body)
refute_empty submissions["collection"]
assert_equal ontologies2.size + 1 , submissions["collection"].size
end

def test_submissions_default_includes
ontology_count = 5
Expand Down

0 comments on commit ea90027

Please sign in to comment.