1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
require 'test/unit'
require File.join(File.expand_path(File.dirname(__FILE__)),"setup.rb")
class FeatureRestTest < Test::Unit::TestCase
def serialize rdf, format
string = RDF::Writer.for(format).buffer do |writer|
rdf.each{|statement| writer << statement}
end
string
end
def parse string, format
rdf = RDF::Graph.new
RDF::Reader.for(format).new(string) do |reader|
reader.each_statement { |statement| rdf << statement }
end
rdf
end
# TODO: test supported accept/content-type formats
# TODO: test invalid rdfs
def test_01_create_feature
@@rdf = RDF::Graph.new
subject = RDF::Node.new
#subject = RDF::URI.new File.join($feature[:uri]), SecureRandom.uuid)
@@rdf << RDF::Statement.new(subject, RDF::DC.title, "test" )
@@rdf << RDF::Statement.new(subject, RDF.type, RDF::OT.Feature)
@@formats = [
[:ntriples, "text/plain"],
[:rdfxml, "application/rdf+xml"],
[:turtle, 'text/turtle']
]
@@uris = []
@@formats.each do |f|
@@uris << OpenTox::RestClientWrapper.post($feature[:uri], serialize(@@rdf, f[0]), :content_type => f[1]).chomp
assert_equal true, URI.accessible?(@@uris.last)
end
end
def test_02_list_features
r = OpenTox::RestClientWrapper.get($feature[:uri], {}, :accept => "text/uri-list")#.split("\n")
@@uris.each{ |uri| assert_equal true, r.include?(uri) }
@@formats.each do |f|
rdf = OpenTox::RestClientWrapper.get($feature[:uri], {}, :accept => f[1])
@@uris.each do |uri|
assert_match /#{uri}/, rdf
assert_match /test/, rdf
assert_match /Feature/, rdf
end
end
end
def test_03_get_feature
@@uris.each do |uri|
@@formats.each do |f|
rdf = OpenTox::RestClientWrapper.get(uri, {}, :accept => f[1])
# TODO compare with rdf serialization
assert_match /#{uri}/, rdf
end
end
end
def test_04_add_to_feature
uri = @@uris.first
new_rdf = RDF::Graph.new
new_rdf << RDF::Statement.new(RDF::Node.new, RDF::DC.author, "XYZ")
@@formats.each do |f|
OpenTox::RestClientWrapper.post(uri, serialize(new_rdf,f[0]), :content_type => f[1])
assert_match /XYZ/, OpenTox::RestClientWrapper.get(uri,{},:accept => f[1])
# TODO compare with rdf serialization
end
end
def test_05_replace_feature
@@formats.each do |f|
@@uris.each do |uri|
OpenTox::RestClientWrapper.put(uri, serialize(@@rdf,f[0]), :content_type => f[1])
assert_equal true, URI.accessible?(uri)
assert_no_match /XYZ/, OpenTox::RestClientWrapper.get(uri,{},:accept => f[1])
end
end
end
def test_06_delete_feature
@@uris.each do |uri|
OpenTox::RestClientWrapper.delete(uri)
assert_raise OpenTox::RestCallError do
OpenTox::RestClientWrapper.get(uri)
end
end
end
end
=begin
class FeatureCrudTest < Test::Unit::TestCase
def test_01_create_feature
@@feature = OpenTox::Feature.create $feature[:uri]
assert_equal true, URI.accessible?(@@feature.uri)
end
def test_02_list_features
r = OpenTox::Feature.all($feature[:uri])
assert_equal true, r.include?(@@feature)
end
def test_03_get_feature
@@rdf = @@feature.metadata
assert_match /#{@@feature.uri}/, @@rdf
end
def test_04_update_feature
@@feature[RDF::DC.title] = "test"
@@feature.save
assert_match "test", OpenTox::RestClientWrapper.get(@@uri)
end
def test_05_delete_feature
uri = @@feature.uri
@@feature.delete
r = OpenTox::RestClientWrapper.get($feature[:uri]).split("\n")
assert_equal false, r.include?(@@uri)
assert_equal false, URI.accessible?(@@uri)
end
end
def test_ambit_feature
uri = "http://apps.ideaconsult.net:8080/ambit2/feature/35796",
f = OpenTox::Feature.new(uri)
assert_equal RDF::OT1.TUM_CDK_nAtom, f[RDF::OWL.sameAs]
assert_equal RDF::OT1.TUM_CDK_nAtom, f.metadata[RDF::OWL.sameAs].first.to_s
assert_equal [RDF::OT1.Feature,RDF::OT1.NumericFeature].sort, f[RDF.type].sort
end
def test_owl
#@features.each do |uri|
validate_owl @features.first, @@subjectid unless CONFIG[:services]["opentox-dataset"].match(/localhost/)
validate_owl @features.last, @@subjectid unless CONFIG[:services]["opentox-dataset"].match(/localhost/)
# Ambit does not validate
#end
end
=end
|