summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgebele <gebele@in-silico.ch>2013-12-20 14:36:23 +0100
committergebele <gebele@in-silico.ch>2013-12-20 14:36:23 +0100
commit7c1d6390683e568c1fed640da20a72493b8f8e8c (patch)
treee7819c3cd54af93c3046b41c5db17bdb158aa450
parent389ffcc3bb76f3fc60c1ecd7150f34dd26eae7d7 (diff)
extended sparql tests;factors,genes,pvalue,qvalue,foldchange
-rw-r--r--test/toxbank-investigation-sparql.rb194
1 files changed, 131 insertions, 63 deletions
diff --git a/test/toxbank-investigation-sparql.rb b/test/toxbank-investigation-sparql.rb
index 6b07418..7a5b75b 100644
--- a/test/toxbank-investigation-sparql.rb
+++ b/test/toxbank-investigation-sparql.rb
@@ -107,112 +107,181 @@ class TBSPARQLTest < MiniTest::Test
assert_equal 200, response.code
end
- #TODO assertions
+ def test_13_investigation_by_characteristic_value
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_characteristic_value", {:value => "Saccharomyces cerevisiae (Baker's yeast)"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ result = JSON.parse(response)
+ char_value = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["propname"]["value"]}:::#{n["ontoURI"]["value"]}"}
+ assert char_value.include?("#{@@uri}:::organism:::http://purl.obolibrary.org/obo/NEWT_4932")
+ assert_equal 200, response.code
+ end
+
+ def test_14_investigation_by_characteristic_name
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_characteristic_name", {:value => "organism"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ result = JSON.parse(response)
+ char_name = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["value"]["value"]}:::#{n["ontoURI"]["value"]}"}
+ assert char_name.include?("#{@@uri}:::Saccharomyces cerevisiae (Baker's yeast):::http://purl.obolibrary.org/obo/NEWT_4932")
+ assert_equal 200, response.code
+ end
+
+ def test_15_investigation_by_characteristic
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_characteristic", {:value => "http://purl.obolibrary.org/obo/NEWT_4932"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ result = JSON.parse(response)
+ inv_char = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["propname"]["value"]}:::#{n["value"]["value"]}"}
+ assert inv_char.include?("#{@@uri}:::organism:::Saccharomyces cerevisiae (Baker's yeast)")
+ assert_equal 200, response.code
+ end
+
+ def test_30_empty_factorValues_search
+ assert_raises OpenTox::BadRequestError do
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_factors", {:factorValues => ""}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ end
+ end
+
+ def test_31_empty_value_search
+ assert_raises OpenTox::BadRequestError do
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_characteristic", {:value => ""}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ end
+ end
+
+ # delete investigation/{id}
+ # @note expect code 200
+ def test_90_delete_investigation
+ result = OpenTox::RestClientWrapper.delete @@uri.to_s, {}, {:subjectid => $pi[:subjectid]}
+ assert_equal 200, result.code
+ end
+
+end
+
+class TBSPARQLTestExtended < MiniTest::Test
+
+ i_suck_and_my_tests_are_order_dependent!
+
+ # login as pi and create a test investigation
+ def test_00_create_investigation
+ OpenTox::RestClientWrapper.subjectid = $pi[:subjectid] # set pi as the logged in user
+ @@uri = ""
+ file = File.join File.dirname(__FILE__), "data/toxbank-investigation/valid", "IST_test_sparql.zip"
+ response = OpenTox::RestClientWrapper.post $investigation[:uri], {:file => File.open(file)}, { :subjectid => $pi[:subjectid] }
+ task_uri = response.chomp
+ task = OpenTox::Task.new task_uri
+ task.wait
+ uri = task.resultURI
+ assert_equal "Completed", task.hasStatus, "Task should be completed but is: #{task.hasStatus}. Task URI is #{task_uri} ."
+ @@uri = URI(uri)
+ OpenTox::RestClientWrapper.put @@uri.to_s, { :published => "true", :summarySearchable => "true"}, { :subjectid => $pi[:subjectid] }
+ end
+
+ # Retrieves all factors (name, value, ontology URI of the value) given an investigation URI
+ def test_04_factors_by_investigation
+ response = OpenTox::RestClientWrapper.get "#{@@uri}/sparql/factors_by_investigation", {}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ result = JSON.parse(response)
+ headvars = result["head"]["vars"]
+ assert headvars.include?("factorname")
+ assert headvars.include?("value")
+ assert headvars.include?("ontouri")
+ assert headvars.include?("unitOnto")
+ assert headvars.include?("unit")
+ assert headvars.include?("unitID")
+ factors = result["results"]["bindings"].map{|n| "#{n["factorname"]["value"]}:::#{n["value"]["value"]}:::#{n["ontouri"]["value"]}:::#{n["unitOnto"]["value"]}:::#{n["unit"]["value"]}:::#{n["unitID"]["value"]}"}
+ #puts factors
+ assert factors.include?("sample TimePoint:::8::::::::::::")
+ assert factors.include?("dose:::0::::::http://purl.obolibrary.org/obo/UO_0000064:::micromolar:::UO:0000064")
+ assert factors.include?("compound:::DOXORUBICIN:::http://purl.obolibrary.org/chebi/CHEBI:28748:::::::::")
+ end
+
# Retrieves investigation URI and factors (name, value, ontology URI of the value)
def test_09_investigations_and_factors
response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigations_and_factors", {}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
- #puts response
+ result = JSON.parse(response)
+ inv_factors = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["factorname"]["value"]}:::#{n["ontouri"]["value"]}:::#{n["value"]["value"]}"}
+ #puts inv_factors
assert_equal 200, response.code
+ assert inv_factors.include?("#{@@uri}:::compound:::http://purl.obolibrary.org/chebi/CHEBI:28748:::DOXORUBICIN")
end
- #TODO assertions
# Retrieves protocol URI containing any of the factor value URI (e.g. two compound URIs)
def test_10_protocols_by_factors
response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/protocols_by_factors", {:factorValues => "[]"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
#puts response
+ result = JSON.parse(response)
+ protocol_factors = result["results"]["bindings"].map{|n| "#{n["protocol"]["value"]}:::#{n["label"]["value"]}:::#{n["factorname"]["value"]}:::#{n["value"]["value"]}"}
+ #puts protocol_factors
assert_equal 200, response.code
+ assert protocol_factors.include?("#{@@uri}/P4:::labeling:::dose:::0")
+ assert protocol_factors.include?("#{@@uri}/P3:::RNA extraction:::dose:::0")
+ assert protocol_factors.include?("#{@@uri}/P2:::normalization data transformation:::dose:::0")
+ assert protocol_factors.include?("#{@@uri}/P1:::data transformation:::dose:::0")
+ assert protocol_factors.include?("#{@@uri}/P5:::data collection:::dose:::0")
+ assert protocol_factors.include?("#{@@uri}/P6:::nucleic acid hybridization:::dose:::0")
+ assert protocol_factors.include?("#{@@uri}/P4:::labeling:::sample TimePoint:::8")
+ assert protocol_factors.include?("#{@@uri}/P3:::RNA extraction:::sample TimePoint:::8")
+ assert protocol_factors.include?("#{@@uri}/P2:::normalization data transformation:::sample TimePoint:::8")
+ assert protocol_factors.include?("#{@@uri}/P1:::data transformation:::sample TimePoint:::8")
+ assert protocol_factors.include?("#{@@uri}/P5:::data collection:::sample TimePoint:::8")
+ assert protocol_factors.include?("#{@@uri}/P6:::nucleic acid hybridization:::sample TimePoint:::8")
+ assert protocol_factors.include?("#{@@uri}/P4:::labeling:::compound:::DOXORUBICIN")
+ assert protocol_factors.include?("#{@@uri}/P3:::RNA extraction:::compound:::DOXORUBICIN")
+ assert protocol_factors.include?("#{@@uri}/P2:::normalization data transformation:::compound:::DOXORUBICIN")
+ assert protocol_factors.include?("#{@@uri}/P1:::data transformation:::compound:::DOXORUBICIN")
+ assert protocol_factors.include?("#{@@uri}/P5:::data collection:::compound:::DOXORUBICIN")
+ assert protocol_factors.include?("#{@@uri}/P6:::nucleic acid hybridization:::compound:::DOXORUBICIN")
end
- #TODO assertions
# Retrieves investigation URI containing any of the factor value URI (e.g. two compound URIs)
def test_11_investigation_by_factors
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_factors", {:factorValues => "[]"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_factors", {:factorValues => "['http://purl.obolibrary.org/chebi/CHEBI:28748']"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
#puts response
+ result = JSON.parse(response)
+ inv_factors = result["results"]["bindings"].map{|n| "#{n["inv"]["value"]}:::#{n["factorname"]["value"]}:::#{n["value"]["value"]}"}
assert_equal 200, response.code
+ assert inv_factors.include?("#{@@uri}:::compound:::DOXORUBICIN")
end
- #TODO assertions
# Retrieves investigation URI given a factor value URI (e.g. compound URI)
def test_12_investigation_by_factor
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_factor", {:value => "http://factor.value/uri"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_factor", {:value => "http://purl.obolibrary.org/chebi/CHEBI:28748"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
#puts response
- assert_equal 200, response.code
- end
-
- def test_13_investigation_by_characteristic_value
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_characteristic_value", {:value => "Saccharomyces cerevisiae (Baker's yeast)"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
- result = JSON.parse(response)
- char_value = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["propname"]["value"]}:::#{n["ontoURI"]["value"]}"}
- assert char_value.include?("#{@@uri}:::organism:::http://purl.obolibrary.org/obo/NEWT_4932")
- assert_equal 200, response.code
- end
-
- def test_14_investigation_by_characteristic_name
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_characteristic_name", {:value => "organism"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
result = JSON.parse(response)
- char_name = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["value"]["value"]}:::#{n["ontoURI"]["value"]}"}
- assert char_name.include?("#{@@uri}:::Saccharomyces cerevisiae (Baker's yeast):::http://purl.obolibrary.org/obo/NEWT_4932")
- assert_equal 200, response.code
- end
-
- def test_15_investigation_by_characteristic
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_characteristic", {:value => "http://purl.obolibrary.org/obo/NEWT_4932"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
- result = JSON.parse(response)
- inv_char = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["propname"]["value"]}:::#{n["value"]["value"]}"}
- assert inv_char.include?("#{@@uri}:::organism:::Saccharomyces cerevisiae (Baker's yeast)")
+ inv_factor = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["factorname"]["value"]}:::#{n["value"]["value"]}"}
assert_equal 200, response.code
+ assert inv_factor.include?("#{@@uri}:::compound:::DOXORUBICIN")
end
- #TODO assertions
def test_16_investigation_by_pvalue
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_pvalue", {:value => "0.05"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_pvalue", {:value => "0.65614"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
result = JSON.parse(response)
- #puts result
- #inv_pvalue = result["results"]["bindings"].map{|n| ""}
- #assert inv_pvalue.include?("")
+ #puts response
+ result = JSON.parse(response)
+ inv_pvalue = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["gene"]["value"]}"}
assert_equal 200, response.code
+ assert inv_pvalue.include?("#{@@uri}:::http://onto.toxbank.net/isa/Entrez/3075")
end
- #TODO assertions
def test_17_investigation_by_qvalue
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_qvalue", {:value => "0.05"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_qvalue", {:value => "0.805517"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ #puts response
result = JSON.parse(response)
- #puts result
- #inv_qvalue = result["results"]["bindings"].map{|n| ""}
- #assert inv_qvalue.include?("")
+ inv_qvalue = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["gene"]["value"]}"}
assert_equal 200, response.code
+ assert inv_qvalue.include?("#{@@uri}:::http://onto.toxbank.net/isa/Entrez/3075")
end
- #TODO assertions
def test_18_investigation_by_foldchange
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_foldchange", {:value => "1.5"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_foldchange", {:value => "0.035"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
result = JSON.parse(response)
- #puts result
- #inv_foldchange = result["results"]["bindings"].map{|n| ""}
- #assert inv_foldchange.include?("")
+ #puts response
+ inv_foldchange = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["gene"]["value"]}"}
assert_equal 200, response.code
+ assert inv_foldchange.include?("#{@@uri}:::http://onto.toxbank.net/isa/Entrez/3075")
end
- #TODO assertions
def test_19_investigation_by_genes
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_genes", {:geneIdentifiers => "[uniprot:P10809,genesymbol:HSPD1,unigene:Hs.595053,refseq:NM_002156,entrez:3329]"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
+ response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_genes", {:geneIdentifiers => "['entrez:3075']"}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
result = JSON.parse(response)
- #puts result
- #inv_genes = result["results"]["bindings"].map{|n| ""}
- #assert inv_genes.include?("")
+ #puts response
+ inv_genes = result["results"]["bindings"].map{|n| "#{n["investigation"]["value"]}:::#{n["datatype"]["value"]}:::#{n["title"]["value"]}:::#{n["valuetype"]["value"]}:::#{n["value"]["value"]}"}
assert_equal 200, response.code
- end
-
- def test_30_empty_factorValues_search
- assert_raises OpenTox::BadRequestError do
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_factors", {:factorValues => ""}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
- end
- end
-
- def test_31_empty_value_search
- assert_raises OpenTox::BadRequestError do
- response = OpenTox::RestClientWrapper.get "#{$investigation[:uri]}/sparql/investigation_by_characteristic", {:value => ""}, {:accept => "application/json", :subjectid => $pi[:subjectid]}
- end
+ assert inv_genes.include?("#{@@uri}:::http://onto.toxbank.net/isa/bii/data_types/microarray_derived_data:::q-value[Low.8hr-Control.8hr]:::http://onto.toxbank.net/isa/qvalue:::0.911237")
end
# delete investigation/{id}
@@ -221,5 +290,4 @@ class TBSPARQLTest < MiniTest::Test
result = OpenTox::RestClientWrapper.delete @@uri.to_s, {}, {:subjectid => $pi[:subjectid]}
assert_equal 200, result.code
end
-
end