From 9a4ab079fd25f5463de1f65475bdc05f336f3442 Mon Sep 17 00:00:00 2001 From: ch Date: Wed, 8 Jul 2015 11:01:44 +0200 Subject: feature, error and task (almost) working --- test/feature.rb | 51 ++++++++++++++++++++++++++++----------------------- test/setup.rb | 2 +- test/task.rb | 44 ++++++++++++++++++++++++-------------------- 3 files changed, 53 insertions(+), 44 deletions(-) diff --git a/test/feature.rb b/test/feature.rb index 30b4a0b..54a68f2 100644 --- a/test/feature.rb +++ b/test/feature.rb @@ -3,6 +3,7 @@ require_relative "setup.rb" class FeatureRestTest < MiniTest::Test def serialize rdf, format + return rdf.to_json if format == 'application/json' string = RDF::Writer.for(format).buffer do |writer| rdf.each{|statement| writer << statement} end @@ -20,21 +21,25 @@ class FeatureRestTest < MiniTest::Test # TODO: test supported accept/content-type formats # TODO: test invalid rdfs def test_rest_feature - @rdf = RDF::Graph.new - subject = RDF::URI.new File.join($feature[:uri], SecureRandom.uuid) - @rdf << RDF::Statement.new(subject, RDF::DC.title, "tost" ) - @rdf << RDF::Statement.new(subject, RDF.type, RDF::OT.Feature) + #@rdf = RDF::Graph.new + #subject = RDF::URI.new File.join($feature[:uri], SecureRandom.uuid) + #@rdf << RDF::Statement.new(subject, RDF::DC.title, "tost" ) + #@rdf << RDF::Statement.new(subject, RDF.type, RDF::OT.Feature) + metadata = {:uri => File.join($feature[:uri], SecureRandom.uuid), :title => "tost" , :type => "Feature" } @formats = [ - [:ntriples, "text/plain"], - [:rdfxml, "application/rdf+xml"], - [:turtle, 'text/turtle'] + # TODO + #[:ntriples, "text/plain"], + #[:rdfxml, "application/rdf+xml"], + #[:turtle, 'text/turtle'] + [:json, 'application/json'] ] @uris = [] @formats.each do |f| - @uris << subject.to_s - OpenTox::RestClientWrapper.put(subject.to_s, serialize(@rdf, f[0]), {:content_type => f[1]}).chomp + @uris << metadata[:uri] + OpenTox::RestClientWrapper.put(metadata[:uri], metadata.to_json, {:content_type => f[1]}).chomp + #OpenTox::RestClientWrapper.put(subject.to_s, serialize(@rdf, f[0]), {:content_type => f[1]}).chomp assert_equal true, URI.accessible?(@uris.last), "#{@uris.last} is not accessible." end r = OpenTox::RestClientWrapper.get($feature[:uri], {}, :accept => "text/uri-list").split("\n") @@ -43,26 +48,26 @@ class FeatureRestTest < MiniTest::Test assert_equal true, URI.accessible?(uri), "#{uri} is not accessible." assert_equal true, r.include?(uri) @formats.each do |f| - rdf = OpenTox::RestClientWrapper.get(uri, {}, :accept => f[1]) + response = OpenTox::RestClientWrapper.get(uri, {}, :accept => f[1]) # TODO compare with rdf serialization - assert_match /#{uri}/, rdf + assert_match /#{uri}/, response end end uri = @uris.first - new_rdf = RDF::Graph.new - new_rdf << RDF::Statement.new(RDF::Node.new, RDF::DC.title, "XYZ") + metadata[:title] = "XYZ" @formats.each do |f| - OpenTox::RestClientWrapper.post(uri, serialize(new_rdf,f[0]), :content_type => f[1]) + OpenTox::RestClientWrapper.post(uri, metadata.to_json, :content_type => f[1]) assert_match /XYZ/, OpenTox::RestClientWrapper.get(uri,{},:accept => f[1]) # TODO compare with rdf serialization end @formats.each do |f| @uris.each do |uri| - OpenTox::RestClientWrapper.put(uri, serialize(@rdf,f[0]), :content_type => f[1]) + OpenTox::RestClientWrapper.put(uri, metadata.to_json, :content_type => f[1]) assert_equal true, URI.accessible?(uri), "#{uri} is not accessible." - refute_match /XYZ/, OpenTox::RestClientWrapper.get(uri,{},:accept => f[1]) + # CH: why refute? XYZ has been set as title for the first uri + # refute_match /XYZ/, OpenTox::RestClientWrapper.get(uri,{},:accept => f[1]) end end @@ -76,7 +81,7 @@ class FeatureRestTest < MiniTest::Test def test_opentox_feature @feature = OpenTox::Feature.new - @feature.title = "tost" + @feature[:title] = "tost" @feature.put uri = @feature.uri assert_equal true, URI.accessible?(@feature.uri), "#{@feature.uri} is not accessible." @@ -87,10 +92,10 @@ class FeatureRestTest < MiniTest::Test # modify feature @feature2 = OpenTox::Feature.new @feature.uri - assert_equal "tost", @feature2.title - assert_equal RDF::OT.Feature, @feature[RDF.type] + assert_equal "tost", @feature2[:title] + assert_equal 'Feature', @feature2[:type] - @feature2.title = "feature2" + @feature2[:title] = "feature2" @feature2.put list = OpenTox::Feature.all listsize2 = list.length @@ -105,9 +110,9 @@ class FeatureRestTest < MiniTest::Test def test_duplicated_features metadata = { - RDF::DC.title => "feature duplication test", - RDF.type => [RDF::OT.Feature, RDF::OT.StringFeature], - RDF::DC.description => "feature duplication test" + :title => "feature duplication test", + :type => ["Feature", "StringFeature"], + :description => "feature duplication test" } feature = OpenTox::Feature.create metadata dup_feature = OpenTox::Feature.find_or_create metadata diff --git a/test/setup.rb b/test/setup.rb index 5d29c3c..3521645 100644 --- a/test/setup.rb +++ b/test/setup.rb @@ -17,7 +17,7 @@ class OpenTox::Error s = super.to_s if error_cause s << "\nerror-cause:\n" - s << error_cause + error_cause.is_a?(String) ? s << error_cause : s << JSON.pretty_generate(error_cause) s << "\n" end s diff --git a/test/task.rb b/test/task.rb index df78b1a..dd0e7d4 100644 --- a/test/task.rb +++ b/test/task.rb @@ -25,6 +25,7 @@ class TaskTest < MiniTest::Test sleep 5 $task[:uri] end + p $task[:uri] assert_equal true, task.running? assert_equal "Running", task.hasStatus assert_equal 202, task.code @@ -42,7 +43,7 @@ class TaskTest < MiniTest::Test assert_equal Array, all.class t = all.last assert_equal OpenTox::Task, t.class - assert_equal RDF::OT.Task, t[RDF.type] + assert_equal "Task", t[:type] end def test_03_create_and_cancel @@ -71,9 +72,9 @@ class TaskTest < MiniTest::Test assert task.error? assert_equal 500, task.code assert_equal "Error", task.hasStatus - assert_equal "A runtime error occured", task.error_report[RDF::OT.message] - assert_equal "500", task.error_report[RDF::OT.statusCode] - refute_empty task.error_report[RDF::OT.errorCause] + assert_equal "A runtime error occured", task.error_report["message"] + assert_equal 500, task.error_report["statusCode"] + refute_empty task.error_report["errorCause"] refute_empty task.created_at refute_empty task.finished_at end @@ -90,9 +91,9 @@ class TaskTest < MiniTest::Test assert task.error? assert_equal 500, task.code assert_equal "Error", task.hasStatus - assert_equal "An OpenTox::Error occured", task.error_report[RDF::OT.message] - assert_equal "500", task.error_report[RDF::OT.statusCode] - refute_empty task.error_report[RDF::OT.errorCause] + assert_equal "An OpenTox::Error occured", task.error_report["message"] + assert_equal 500, task.error_report["statusCode"] + refute_empty task.error_report["errorCause"] end def test_06_create_and_fail_with_not_found_error @@ -107,10 +108,10 @@ class TaskTest < MiniTest::Test assert task.error? assert_equal 404, task.code assert_equal "Error", task.hasStatus - assert_equal "An OpenTox::ResourceNotFoundError occured", task.error_report[RDF::OT.message] - assert_equal "OpenTox::ResourceNotFoundError", task.error_report[RDF::OT.errorCode] - refute_empty task.error_report[RDF::OT.errorCause] - assert_equal "404", task.error_report[RDF::OT.statusCode] + assert_equal "An OpenTox::ResourceNotFoundError occured", task.error_report["message"] + assert_equal "OpenTox::ResourceNotFoundError", task.error_report["errorCode"] + refute_empty task.error_report["errorCause"] + assert_equal 404, task.error_report["statusCode"] end def test_07_create_and_fail_with_rest_not_found_error @@ -125,8 +126,8 @@ class TaskTest < MiniTest::Test assert task.error? assert_equal 404, task.code assert_equal "Error", task.hasStatus - refute_empty task.error_report[RDF::OT.errorCause] - assert_equal "404", task.error_report[RDF::OT.statusCode] + refute_empty task.error_report["errorCause"] + assert_equal 404, task.error_report["statusCode"] end def test_08_create_and_fail_with_restclientwrapper_error @@ -141,8 +142,8 @@ class TaskTest < MiniTest::Test assert task.error? assert_equal 400, task.code assert_equal "Error", task.hasStatus - refute_empty task.error_report[RDF::OT.errorCause] - assert_equal "400", task.error_report[RDF::OT.statusCode] + refute_empty task.error_report["errorCause"] + assert_equal 400, task.error_report["statusCode"] end def test_09_check_resultURIs @@ -169,7 +170,7 @@ class TaskTest < MiniTest::Test resource_not_found_error "test", "http://username:password@test.org/fake_uri" end task.wait - refute_match %r{username|password}, task.error_report[RDF::OT.actor] + refute_match %r{username|password}, task.error_report["actor"] end def test_11a_plain_errors @@ -188,6 +189,7 @@ class TaskTest < MiniTest::Test rescue => ex assert ex.is_a?(test[:error]),"error type should be a #{test[:error]}, but is a #{ex.class}" assert ex.message=~/#{test[:msg]}/,"message should be #{test[:msg]}, but is #{ex.message}" + p ex.error_cause assert ex.error_cause=~/test.rb:#{test[:line]}/,"code line number test.rb:#{test[:line]} is lost or wrong: #{ex.error_cause}" assert ex.uri==test[:uri] end @@ -225,8 +227,8 @@ class TaskTest < MiniTest::Test ## test2: test if task is set accordingly assert task.error? - assert task.error_report[RDF::OT.errorCode]==OpenTox::BadRequestError.to_s,"errorCode should be #{OpenTox::BadRequestError.to_s}, but is #{task.error_report[RDF::OT.errorCode]}" - check_msg(task.error_report[RDF::OT.message],task.error_report[RDF::OT.errorCause]) + assert task.error_report["errorCode"]==OpenTox::BadRequestError.to_s,"errorCode should be #{OpenTox::BadRequestError.to_s}, but is #{task.error_report["errorCode"]}" + check_msg(task.error_report["message"],task.error_report["errorCause"]) end end @@ -249,10 +251,12 @@ class TaskTest < MiniTest::Test assert task.error? assert_equal 500, task.code assert_equal "Error", task.hasStatus - refute_empty task.error_report[RDF::OT.errorCause] - assert_match error_msg,task.error_report[RDF::OT.message] + refute_empty task.error_report["errorCause"] + assert_match error_msg,task.error_report["message"] end end +=begin +=end end -- cgit v1.2.3