1 | ;;+----------------------------------------------------------------------------- |
---|
2 | ;;+ Isidorus |
---|
3 | ;;+ (c) 2008-2010 Marc Kuester, Christoph Ludwig, Lukas Georgieff |
---|
4 | ;;+ |
---|
5 | ;;+ Isidorus is freely distributable under the LLGPL license. |
---|
6 | ;;+ You can find a detailed description in trunk/docs/LLGPL-LICENSE.txt and |
---|
7 | ;;+ trunk/docs/LGPL-LICENSE.txt. |
---|
8 | ;;+----------------------------------------------------------------------------- |
---|
9 | |
---|
10 | (defpackage :jtm-test |
---|
11 | (:use |
---|
12 | :common-lisp |
---|
13 | :jtm |
---|
14 | :constants |
---|
15 | :base-tools |
---|
16 | :xtm-importer |
---|
17 | :datamodel |
---|
18 | :it.bese.FiveAM |
---|
19 | :unittests-constants |
---|
20 | :fixtures) |
---|
21 | (:export :test-create-prefixes |
---|
22 | :test-identifiers-to-jtm |
---|
23 | :test-topic-reference |
---|
24 | :test-type-scopes-reifier-to-jtm |
---|
25 | :test-parent-references-to-jtm |
---|
26 | :run-jtm-tests |
---|
27 | :test-instance-ofs-to-jtm |
---|
28 | :test-export-to-jtm-variant |
---|
29 | :test-export-to-jtm-name |
---|
30 | :test-export-to-jtm-occurrence |
---|
31 | :test-export-to-jtm-topic |
---|
32 | :test-export-to-jtm-role |
---|
33 | :test-export-to-jtm-association |
---|
34 | :test-export-to-jtm-fragment |
---|
35 | :test-export-as-jtm |
---|
36 | :test-import-jtm-references-1 |
---|
37 | :test-import-jtm-references-2 |
---|
38 | :test-get-item |
---|
39 | :test-import-identifiers |
---|
40 | :test-import-variants |
---|
41 | :test-import-occurrences |
---|
42 | :test-import-names |
---|
43 | :test-make-instance-of-association |
---|
44 | :test-import-topics |
---|
45 | :test-merge-topics |
---|
46 | :test-import-associations |
---|
47 | :test-import-roles |
---|
48 | :test-import-topic-maps-1 |
---|
49 | :test-import-topic-maps-2 |
---|
50 | :test-import-topic-maps-3 |
---|
51 | :test-import-topic-maps-4 |
---|
52 | :test-import-topic-maps-5 |
---|
53 | :test-import-construct-from-jtm-string |
---|
54 | :test-import-from-jtm-1 |
---|
55 | :test-import-from-jtm-2 |
---|
56 | :test-import-from-jtm-3)) |
---|
57 | |
---|
58 | |
---|
59 | (in-package :jtm-test) |
---|
60 | |
---|
61 | |
---|
62 | (def-suite jtm-tests |
---|
63 | :description "tests various functions of the jtm module") |
---|
64 | |
---|
65 | (in-suite jtm-tests) |
---|
66 | |
---|
67 | |
---|
68 | (test test-create-prefixes |
---|
69 | "Tests the functions that are responsible for generating xml-prefix-suffix |
---|
70 | pairs." |
---|
71 | (with-fixture with-tm-filled-db ("data_base" *sparql_test.xtm*) |
---|
72 | (let* ((goethe |
---|
73 | (get-item-by-psi "http://some.where/tmsparql/author/goethe" |
---|
74 | :revision 0)) |
---|
75 | (goethe-tm (first (in-topicmaps goethe :revision 0))) |
---|
76 | (goethe-assocs (map 'list #'(lambda(role) |
---|
77 | (parent role :revision 0)) |
---|
78 | (player-in-roles goethe :revision 0))) |
---|
79 | (prefixes (jtm::create-prefix-list-for-tm (list goethe) goethe-assocs |
---|
80 | goethe-tm :revision 0))) |
---|
81 | (is (= (length prefixes) 4)) |
---|
82 | (is-false |
---|
83 | (set-exclusive-or (list "pref_1" "pref_2" "pref_3" "xsd") |
---|
84 | (map 'list #'(lambda(item) (getf item :pref)) prefixes) |
---|
85 | :test #'string=)) |
---|
86 | (is-false |
---|
87 | (set-exclusive-or (list "http://some.where/tmsparql/author/" |
---|
88 | "http://some.where/ii/" |
---|
89 | "http://www.isidor.us/unittests/" |
---|
90 | *xsd-ns*) |
---|
91 | (map 'list #'(lambda(item) (getf item :value)) prefixes) |
---|
92 | :test #'string=))))) |
---|
93 | |
---|
94 | |
---|
95 | (test test-topic-reference |
---|
96 | "Tests all functions that are corresponding for topic references." |
---|
97 | (with-fixture with-empty-db ("data_base") |
---|
98 | (let ((top-1 (make-construct 'TopicC |
---|
99 | :start-revision 100 |
---|
100 | :psis |
---|
101 | (list |
---|
102 | (make-construct 'PersistentIdC |
---|
103 | :uri "http://some.where/example/psi-1")))) |
---|
104 | (top-2 (make-construct 'TopicC |
---|
105 | :start-revision 100 |
---|
106 | :item-identifiers |
---|
107 | (list |
---|
108 | (make-construct 'ItemIdentifierC |
---|
109 | :uri "http://some.where/example/ii-1")))) |
---|
110 | (top-3 (make-construct 'TopicC |
---|
111 | :start-revision 100 |
---|
112 | :locators |
---|
113 | (list |
---|
114 | (make-construct 'SubjectLocatorC |
---|
115 | :uri "http://some.where/example/sl-1")))) |
---|
116 | (top-4 (make-construct 'TopicC :start-revision 100)) |
---|
117 | (top-5 (make-construct 'TopicC |
---|
118 | :start-revision 100 |
---|
119 | :psis |
---|
120 | (list |
---|
121 | (make-instance 'PersistentIdC |
---|
122 | :uri "http://some.where/example#psi-2") |
---|
123 | (make-instance 'PersistentIdC |
---|
124 | :uri "http://some.where/example#psi-3")) |
---|
125 | :item-identifiers |
---|
126 | (list |
---|
127 | (make-instance 'ItemIdentifierC |
---|
128 | :uri "http://some.where/example#ii-2") |
---|
129 | (make-instance 'ItemIdentifierC |
---|
130 | :uri "http://some.where/example#ii-3")) |
---|
131 | :locators |
---|
132 | (list |
---|
133 | (make-instance 'SubjectLocatorC |
---|
134 | :uri "http://some.where/example#sl-2") |
---|
135 | (make-instance 'SubjectLocatorC |
---|
136 | :uri "http://some.where/example#sl-3")))) |
---|
137 | (prefixes (list (list :pref "pref_1" :value "http://some.where/example#") |
---|
138 | (list :pref "pref_2" :value "http://some.where/") |
---|
139 | (list :pref "pref_3" :value "http://any.prefix/")))) |
---|
140 | (is (string= (jtm::export-topic-reference-to-jtm top-1 :revision 0) |
---|
141 | "\"si:http:\\/\\/some.where\\/example\\/psi-1\"")) |
---|
142 | (is (string= (jtm::export-topic-reference-to-jtm top-2 :revision 0) |
---|
143 | "\"ii:http:\\/\\/some.where\\/example\\/ii-1\"")) |
---|
144 | (is (string= (jtm::export-topic-reference-to-jtm top-3 :revision 0) |
---|
145 | "\"sl:http:\\/\\/some.where\\/example\\/sl-1\"")) |
---|
146 | (signals exceptions::JTM-error |
---|
147 | (jtm::export-topic-reference-to-jtm top-4 :revision 0)) |
---|
148 | (is (string= (jtm::export-topic-reference-to-jtm top-5 :revision 0) |
---|
149 | "\"si:http:\\/\\/some.where\\/example#psi-2\"")) |
---|
150 | (is (string= (jtm::export-topic-reference-to-jtm top-1 :revision 0 |
---|
151 | :prefixes prefixes) |
---|
152 | "\"si:[pref_2:example\\/psi-1]\"")) |
---|
153 | (is (string= (jtm::export-topic-reference-to-jtm top-2 :revision 0 |
---|
154 | :prefixes prefixes) |
---|
155 | "\"ii:[pref_2:example\\/ii-1]\"")) |
---|
156 | (is (string= (jtm::export-topic-reference-to-jtm top-3 :revision 0 |
---|
157 | :prefixes prefixes) |
---|
158 | "\"sl:[pref_2:example\\/sl-1]\"")) |
---|
159 | (is (string= (jtm::export-topic-reference-to-jtm top-5 :revision 0 |
---|
160 | :prefixes prefixes) |
---|
161 | "\"si:[pref_1:psi-2]\"")) |
---|
162 | (is (string= (jtm::export-topic-reference-to-jtm |
---|
163 | top-5 :revision 0 |
---|
164 | :prefixes (list (list :pref "pref_1" |
---|
165 | :value "http://some.where/example#psi-2"))) |
---|
166 | "\"si:http:\\/\\/some.where\\/example#psi-2\"")) |
---|
167 | (is (string= (jtm::export-topic-reference-to-jtm |
---|
168 | top-5 :revision 0 |
---|
169 | :prefixes (list (list :pref "pref_1" |
---|
170 | :value "http://any.pref/example#psi-2"))) |
---|
171 | "\"si:http:\\/\\/some.where\\/example#psi-2\""))))) |
---|
172 | |
---|
173 | |
---|
174 | (test test-identifiers-to-jtm |
---|
175 | "Tests the function export-identifiers-to-jtm." |
---|
176 | (with-fixture with-empty-db ("data_base") |
---|
177 | (let ((top-1 (make-construct 'TopicC |
---|
178 | :start-revision 100 |
---|
179 | :psis |
---|
180 | (list |
---|
181 | (make-construct 'PersistentIdC |
---|
182 | :uri "http://some.where/example/psi-1")))) |
---|
183 | (top-2 (make-construct 'TopicC |
---|
184 | :start-revision 100 |
---|
185 | :item-identifiers |
---|
186 | (list |
---|
187 | (make-construct 'ItemIdentifierC |
---|
188 | :uri "http://some.where/example/ii-1")))) |
---|
189 | (top-3 (make-construct 'TopicC |
---|
190 | :start-revision 100 |
---|
191 | :locators |
---|
192 | (list |
---|
193 | (make-construct 'SubjectLocatorC |
---|
194 | :uri "http://some.where/example/sl-1")))) |
---|
195 | (top-5 (make-construct 'TopicC |
---|
196 | :start-revision 100 |
---|
197 | :psis |
---|
198 | (list |
---|
199 | (make-instance 'PersistentIdC |
---|
200 | :uri "http://some.where/example#psi-2") |
---|
201 | (make-instance 'PersistentIdC |
---|
202 | :uri "http://some.where/example#psi-3")) |
---|
203 | :item-identifiers |
---|
204 | (list |
---|
205 | (make-instance 'ItemIdentifierC |
---|
206 | :uri "http://some.where/example#ii-2") |
---|
207 | (make-instance 'ItemIdentifierC |
---|
208 | :uri "http://some.where/example#ii-3")) |
---|
209 | :locators |
---|
210 | (list |
---|
211 | (make-instance 'SubjectLocatorC |
---|
212 | :uri "http://some.where/example#sl-2") |
---|
213 | (make-instance 'SubjectLocatorC |
---|
214 | :uri "http://some.where/example#sl-3")))) |
---|
215 | (name-1 (make-construct 'NameC |
---|
216 | :start-revision 100 |
---|
217 | :item-identifiers |
---|
218 | (list |
---|
219 | (make-construct |
---|
220 | 'ItemIdentifierC |
---|
221 | :uri "http://some.where/example/ii-5")))) |
---|
222 | (prefixes (list (list :pref "pref_1" :value "http://some.where/example#") |
---|
223 | (list :pref "pref_2" :value "http://some.where/") |
---|
224 | (list :pref "pref_3" :value "http://any.prefix/")))) |
---|
225 | (is (string= (jtm::export-identifiers-to-jtm top-1 :revision 0 |
---|
226 | :identifier-type 'PersistentIdC) |
---|
227 | "[\"http:\\/\\/some.where\\/example\\/psi-1\"]")) |
---|
228 | (is (string= (jtm::export-identifiers-to-jtm top-1 :revision 0 |
---|
229 | :identifier-type 'PersistentIdC |
---|
230 | :prefixes prefixes) |
---|
231 | "[\"[pref_2:example\\/psi-1]\"]")) |
---|
232 | (is (string= (jtm::export-identifiers-to-jtm top-1 :revision 0 |
---|
233 | :identifier-type 'SubjectLocatorC) |
---|
234 | "null")) |
---|
235 | (is (string= (jtm::export-identifiers-to-jtm top-1 :revision 0) |
---|
236 | "null")) |
---|
237 | (is (string= (jtm::export-identifiers-to-jtm top-2 :revision 0) |
---|
238 | "[\"http:\\/\\/some.where\\/example\\/ii-1\"]")) |
---|
239 | (is (string= (jtm::export-identifiers-to-jtm top-2 :revision 0 |
---|
240 | :prefixes prefixes) |
---|
241 | "[\"[pref_2:example\\/ii-1]\"]")) |
---|
242 | (is (string= (jtm::export-identifiers-to-jtm top-2 :revision 0 |
---|
243 | :identifier-type 'SubjectLocatorC) |
---|
244 | "null")) |
---|
245 | (is (string= (jtm::export-identifiers-to-jtm top-2 :revision 0 |
---|
246 | :identifier-type 'PersistentIdC) |
---|
247 | "null")) |
---|
248 | (is (string= (jtm::export-identifiers-to-jtm top-3 :revision 0 |
---|
249 | :identifier-type 'SubjectLocatorC) |
---|
250 | "[\"http:\\/\\/some.where\\/example\\/sl-1\"]")) |
---|
251 | (is (string= (jtm::export-identifiers-to-jtm top-3 :revision 0 |
---|
252 | :identifier-type 'SubjectLocatorC |
---|
253 | :prefixes prefixes) |
---|
254 | "[\"[pref_2:example\\/sl-1]\"]")) |
---|
255 | (is (string= (jtm::export-identifiers-to-jtm top-3 :revision 0 |
---|
256 | :identifier-type 'PersistentIdC) |
---|
257 | "null")) |
---|
258 | (is (string= (jtm::export-identifiers-to-jtm top-3 :revision 0) |
---|
259 | "null")) |
---|
260 | (signals exceptions:JTM-error |
---|
261 | (jtm::export-identifiers-to-jtm top-3 :revision 0 :identifier-type 'AnyType)) |
---|
262 | (is (string= (jtm::export-identifiers-to-jtm top-5 :revision 0 |
---|
263 | :identifier-type 'PersistentIdC) |
---|
264 | "[\"http:\\/\\/some.where\\/example#psi-2\",\"http:\\/\\/some.where\\/example#psi-3\"]")) |
---|
265 | (is (string= (jtm::export-identifiers-to-jtm top-5 :revision 0 |
---|
266 | :identifier-type 'PersistentIdC |
---|
267 | :prefixes prefixes) |
---|
268 | "[\"[pref_1:psi-2]\",\"[pref_1:psi-3]\"]")) |
---|
269 | (is (string= (jtm::export-identifiers-to-jtm top-5 :revision 0 |
---|
270 | :identifier-type 'SubjectLocatorC) |
---|
271 | "[\"http:\\/\\/some.where\\/example#sl-2\",\"http:\\/\\/some.where\\/example#sl-3\"]")) |
---|
272 | (is (string= (jtm::export-identifiers-to-jtm top-5 :revision 0 |
---|
273 | :identifier-type 'SubjectLocatorC |
---|
274 | :prefixes prefixes) |
---|
275 | "[\"[pref_1:sl-2]\",\"[pref_1:sl-3]\"]")) |
---|
276 | (is (string= (jtm::export-identifiers-to-jtm top-5 :revision 0) |
---|
277 | "[\"http:\\/\\/some.where\\/example#ii-2\",\"http:\\/\\/some.where\\/example#ii-3\"]")) |
---|
278 | (is (string= (jtm::export-identifiers-to-jtm top-5 :revision 0 |
---|
279 | :prefixes prefixes) |
---|
280 | "[\"[pref_1:ii-2]\",\"[pref_1:ii-3]\"]")) |
---|
281 | |
---|
282 | (is (string= (jtm::export-identifiers-to-jtm |
---|
283 | top-5 :revision 0 |
---|
284 | :prefixes (list (list :pref "pref_1" |
---|
285 | :value "http://some.where/example#psi-2"))) |
---|
286 | "[\"http:\\/\\/some.where\\/example#ii-2\",\"http:\\/\\/some.where\\/example#ii-3\"]")) |
---|
287 | (is (string= (jtm::export-identifiers-to-jtm |
---|
288 | top-5 :revision 0 |
---|
289 | :prefixes (list (list :pref "pref_1" |
---|
290 | :value "http://any.pref/example#psi-2"))) |
---|
291 | "[\"http:\\/\\/some.where\\/example#ii-2\",\"http:\\/\\/some.where\\/example#ii-3\"]")) |
---|
292 | (is (string= (jtm::export-identifiers-to-jtm name-1 :revision 0) |
---|
293 | "[\"http:\\/\\/some.where\\/example\\/ii-5\"]")) |
---|
294 | (is (string= (jtm::export-identifiers-to-jtm name-1 :revision 0 |
---|
295 | :prefixes prefixes) |
---|
296 | "[\"[pref_2:example\\/ii-5]\"]"))))) |
---|
297 | |
---|
298 | |
---|
299 | |
---|
300 | (test test-type-scopes-reifier-to-jtm |
---|
301 | "Tests the functions export-type-to-jtm, export-scopes-to-jtm, |
---|
302 | and export-reifier-to-jtm." |
---|
303 | (with-fixture with-empty-db ("data_base") |
---|
304 | (let* ((top-1 (make-construct 'TopicC |
---|
305 | :start-revision 100 |
---|
306 | :psis |
---|
307 | (list |
---|
308 | (make-construct 'PersistentIdC |
---|
309 | :uri "http://some.where/example/psi-1")))) |
---|
310 | (top-2 (make-construct 'TopicC |
---|
311 | :start-revision 100 |
---|
312 | :locators |
---|
313 | (list |
---|
314 | (make-construct 'SubjectLocatorC |
---|
315 | :uri "http://some.where/example/sl-1")))) |
---|
316 | (top-3 (make-construct 'TopicC :start-revision 100)) |
---|
317 | (name-1 (make-construct 'NameC :start-revision 100 |
---|
318 | :charvalue "name-1" |
---|
319 | :instance-of top-1)) |
---|
320 | (name-2 (make-construct 'NameC :start-revision 100 |
---|
321 | :charvalue "name-2")) |
---|
322 | (name-3 (make-construct 'NameC :start-revision 100 |
---|
323 | :charvalue "name-3" |
---|
324 | :instance-of top-3)) |
---|
325 | (occ-1 (make-construct 'OccurrenceC :start-revision 100 |
---|
326 | :charvalue "occ-1" |
---|
327 | :themes (list top-1 top-2))) |
---|
328 | (occ-2 (make-construct 'OccurrenceC :start-revision 100 |
---|
329 | :charvalue (list top-1 top-2))) |
---|
330 | (occ-3 (make-construct 'OccurrenceC :start-revision 100 |
---|
331 | :charvalue "occ-3" |
---|
332 | :themes (list top-1 top-3 top-2))) |
---|
333 | (assoc-1 (make-construct 'AssociationC :start-revision 100 |
---|
334 | :reifier top-1)) |
---|
335 | (name-4 (make-construct 'NameC :start-revision 100 |
---|
336 | :charvalue "name-4")) |
---|
337 | (occ-4 (make-construct 'OccurrenceC :start-revision 100 |
---|
338 | :charvalue "occ-4" |
---|
339 | :reifier top-3)) |
---|
340 | (prefixes (list (list :pref "pref_1" :value "http://some.where/example/")))) |
---|
341 | (is (string= (jtm::export-type-to-jtm name-1 :revision 0) |
---|
342 | "\"si:http:\\/\\/some.where\\/example\\/psi-1\"")) |
---|
343 | (is (string= (jtm::export-type-to-jtm name-1 :revision 0 :prefixes prefixes) |
---|
344 | "\"si:[pref_1:psi-1]\"")) |
---|
345 | (is (string= (jtm::export-type-to-jtm name-2 :revision 0 :prefixes prefixes |
---|
346 | :error-if-nil nil) |
---|
347 | "null")) |
---|
348 | (signals exceptions:JTM-error (jtm::export-type-to-jtm name-3 :revision 0)) |
---|
349 | (is (or (string= (jtm::export-scopes-to-jtm occ-1 :revision 0) |
---|
350 | "[\"si:http:\\/\\/some.where\\/example\\/psi-1\",\"sl:http:\\/\\/some.where\\/example\\/sl-1\"]") |
---|
351 | (string= (jtm::export-scopes-to-jtm occ-1 :revision 0) |
---|
352 | "[\"sl:http:\\/\\/some.where\\/example\\/sl-1\",\"si:http:\\/\\/some.where\\/example\\/psi-1\"]"))) |
---|
353 | (is (or (string= (jtm::export-scopes-to-jtm occ-1 :revision 0 |
---|
354 | :prefixes prefixes) |
---|
355 | "[\"si:[pref_1:psi-1]\",\"sl:[pref_1:sl-1]\"]") |
---|
356 | (string= (jtm::export-scopes-to-jtm occ-1 :revision 0 |
---|
357 | :prefixes prefixes) |
---|
358 | "[\"sl:[pref_1:sl-1]\",\"si:[pref_1:psi-1]\"]"))) |
---|
359 | (is (string= (jtm::export-scopes-to-jtm occ-2 :revision 0) |
---|
360 | "null")) |
---|
361 | (signals exceptions:JTM-error (jtm::export-scopes-to-jtm occ-3 :revision 0)) |
---|
362 | (is (string= (jtm::export-reifier-to-jtm assoc-1 :revision 0) |
---|
363 | "\"si:http:\\/\\/some.where\\/example\\/psi-1\"")) |
---|
364 | (is (string= (jtm::export-reifier-to-jtm name-4 :revision 0) |
---|
365 | "null")) |
---|
366 | (signals exceptions::JTM-error (jtm::export-reifier-to-jtm occ-4 :revision 0))))) |
---|
367 | |
---|
368 | |
---|
369 | (test test-parent-references-to-jtm |
---|
370 | "Tests the function export-parent-references-to-jtm." |
---|
371 | (with-fixture with-empty-db ("data_base") |
---|
372 | (let* ((var-1 (make-construct 'VariantC :start-revision 100 |
---|
373 | :charvalue "var-1")) |
---|
374 | (var-2 (make-construct 'VariantC :start-revision 100)) |
---|
375 | (name-1 (make-construct 'NameC :start-revision 100 |
---|
376 | :item-identifiers |
---|
377 | (list (make-construct |
---|
378 | 'ItemIdentifierC |
---|
379 | :uri "http://some.where/example/ii-1")) |
---|
380 | :charvalue "name-1" |
---|
381 | :variants (list var-1))) |
---|
382 | (name-2 (make-construct 'NameC :start-revision 100 |
---|
383 | :charvalue "name-2")) |
---|
384 | (occ-1 (make-construct 'OccurrenceC :start-revision 100 |
---|
385 | :charvalue "occ-1")) |
---|
386 | (top-1 (make-construct 'TopicC :start-revision 100 |
---|
387 | :names (list name-1) |
---|
388 | :psis |
---|
389 | (list |
---|
390 | (make-construct 'PersistentIdC |
---|
391 | :uri "http://some.where/example/psi-1")))) |
---|
392 | (top-2 (make-construct 'TopicC :start-revision 100 |
---|
393 | :occurrences (list occ-1) |
---|
394 | :locators |
---|
395 | (list |
---|
396 | (make-construct 'SubjectLocatorC |
---|
397 | :uri "http://some.where/example/sl-1")))) |
---|
398 | (top-3 (make-construct 'TopicC :start-revision 100 |
---|
399 | :names (list name-2))) |
---|
400 | (assoc-1 (make-construct 'AssociationC :start-revision 100 |
---|
401 | :item-identifiers |
---|
402 | (list (make-construct |
---|
403 | 'ItemIdentifierC |
---|
404 | :uri "http://some.where/example/ii-3")) |
---|
405 | :roles (list (list :player top-1 |
---|
406 | :start-revision 100)))) |
---|
407 | (tm (make-construct 'TopicMapC :start-revision 100 |
---|
408 | :topics (list top-3) |
---|
409 | :associations (list assoc-1) |
---|
410 | :item-identifiers |
---|
411 | (list (make-construct |
---|
412 | 'ItemIdentifierC |
---|
413 | :uri "http://some.where/example/ii-2")))) |
---|
414 | (assoc-2 (make-construct 'AssociationC :start-revision 100 |
---|
415 | :roles (list (list :player top-2 |
---|
416 | :start-revision 100)))) |
---|
417 | (role-1 (first (roles assoc-1 :revision 0))) |
---|
418 | (role-2 (first (roles assoc-2 :revision 0))) |
---|
419 | (prefixes (list (list :pref "pref_1" :value "http://some.where/example/")))) |
---|
420 | (setf *TM-REVISION* 0) |
---|
421 | (is (string= (jtm::export-parent-references-to-jtm top-3) |
---|
422 | "[\"ii:http:\\/\\/some.where\\/example\\/ii-2\"]")) |
---|
423 | (is (string= (jtm::export-parent-references-to-jtm top-3 :prefixes prefixes) |
---|
424 | "[\"ii:[pref_1:ii-2]\"]")) |
---|
425 | (signals exceptions:JTM-error (jtm::export-parent-references-to-jtm top-1)) |
---|
426 | (signals exceptions:JTM-error (jtm::export-parent-references-to-jtm assoc-2)) |
---|
427 | (signals exceptions:JTM-error (jtm::export-parent-references-to-jtm tm)) |
---|
428 | (signals exceptions:JTM-error (jtm::export-parent-references-to-jtm name-2)) |
---|
429 | (signals exceptions:JTM-error (jtm::export-parent-references-to-jtm var-2)) |
---|
430 | (signals exceptions:JTM-error (jtm::export-parent-references-to-jtm role-2)) |
---|
431 | (is-true role-1) |
---|
432 | (is-true role-2) |
---|
433 | (is (string= (jtm::export-parent-references-to-jtm var-1) |
---|
434 | "[\"ii:http:\\/\\/some.where\\/example\\/ii-1\"]")) |
---|
435 | (is (string= (jtm::export-parent-references-to-jtm var-1 :prefixes prefixes) |
---|
436 | "[\"ii:[pref_1:ii-1]\"]")) |
---|
437 | (is (string= (jtm::export-parent-references-to-jtm name-1) |
---|
438 | "[\"si:http:\\/\\/some.where\\/example\\/psi-1\"]")) |
---|
439 | (is (string= (jtm::export-parent-references-to-jtm name-1 :prefixes prefixes) |
---|
440 | "[\"si:[pref_1:psi-1]\"]")) |
---|
441 | (is (string= (jtm::export-parent-references-to-jtm occ-1) |
---|
442 | "[\"sl:http:\\/\\/some.where\\/example\\/sl-1\"]")) |
---|
443 | (is (string= (jtm::export-parent-references-to-jtm occ-1 :prefixes prefixes) |
---|
444 | "[\"sl:[pref_1:sl-1]\"]")) |
---|
445 | (is (string= (jtm::export-parent-references-to-jtm assoc-1) |
---|
446 | "[\"ii:http:\\/\\/some.where\\/example\\/ii-2\"]")) |
---|
447 | (is (string= (jtm::export-parent-references-to-jtm assoc-1 :prefixes prefixes) |
---|
448 | "[\"ii:[pref_1:ii-2]\"]")) |
---|
449 | (is (string= (jtm::export-parent-references-to-jtm role-1) |
---|
450 | "[\"ii:http:\\/\\/some.where\\/example\\/ii-3\"]")) |
---|
451 | (is (string= (jtm::export-parent-references-to-jtm role-1 :prefixes prefixes) |
---|
452 | "[\"ii:[pref_1:ii-3]\"]"))))) |
---|
453 | |
---|
454 | |
---|
455 | (test test-instance-ofs-to-jtm |
---|
456 | "Tests the function export-instance-ofs-to-jtm." |
---|
457 | (with-fixture with-empty-db ("data_base") |
---|
458 | (let* ((top-1 (make-construct 'TopicC :start-revision 100 |
---|
459 | :psis |
---|
460 | (list |
---|
461 | (make-construct 'PersistentIdC |
---|
462 | :uri "http://some.where/example#psi-1")))) |
---|
463 | (top-2 (make-construct 'TopicC :start-revision 100 |
---|
464 | :locators |
---|
465 | (list |
---|
466 | (make-construct 'SubjectLocatorC |
---|
467 | :uri "http://some.where/example#sl-1")))) |
---|
468 | (top-3 (make-construct 'TopicC :start-revision 100 |
---|
469 | :item-identifiers |
---|
470 | (list |
---|
471 | (make-construct 'ItemIdentifierC |
---|
472 | :uri "http://some.where/example#ii-1")))) |
---|
473 | (top-4 (make-construct 'TopicC :start-revision 100)) |
---|
474 | (top-5 (make-construct 'TopicC :start-revision 100)) |
---|
475 | (tit (make-construct 'TopicC :start-revision 100 |
---|
476 | :psis (list (make-construct |
---|
477 | 'PersistentIdC |
---|
478 | :uri *type-instance-psi*)))) |
---|
479 | (it (make-construct 'TopicC :start-revision 100 |
---|
480 | :psis (list (make-construct 'PersistentIdC |
---|
481 | :uri *instance-psi*)))) |
---|
482 | (tt (make-construct 'TopicC :start-revision 100 |
---|
483 | :psis (list (make-construct 'PersistentIdC |
---|
484 | :uri *type-psi*)))) |
---|
485 | (prefixes (list (list :pref "pref_1" :value "http://some.where/")))) |
---|
486 | (make-construct 'AssociationC :start-revision 100 |
---|
487 | :roles (list (list :player top-1 :instance-of tt |
---|
488 | :start-revision 100) |
---|
489 | (list :player top-4 :instance-of it |
---|
490 | :start-revision 100)) |
---|
491 | :instance-of tit) |
---|
492 | (make-construct 'AssociationC :start-revision 100 |
---|
493 | :roles (list (list :player top-2 :instance-of tt |
---|
494 | :start-revision 100) |
---|
495 | (list :player top-4 :instance-of it |
---|
496 | :start-revision 100)) |
---|
497 | :instance-of tit) |
---|
498 | (make-construct 'AssociationC :start-revision 100 |
---|
499 | :roles (list (list :player top-3 :instance-of tt |
---|
500 | :start-revision 100) |
---|
501 | (list :player top-5 :instance-of it |
---|
502 | :start-revision 100)) |
---|
503 | :instance-of tit) |
---|
504 | (setf *TM-REVISION* 0) |
---|
505 | (is (string= (jtm::export-instance-ofs-to-jtm top-5) |
---|
506 | "[\"ii:http:\\/\\/some.where\\/example#ii-1\"]")) |
---|
507 | (is (string= (jtm::export-instance-ofs-to-jtm top-5 :prefixes prefixes) |
---|
508 | "[\"ii:[pref_1:example#ii-1]\"]")) |
---|
509 | (is (string= (jtm::export-instance-ofs-to-jtm top-1) |
---|
510 | "null")) |
---|
511 | (is (or (string= (jtm::export-instance-ofs-to-jtm top-4) |
---|
512 | "[\"si:http:\\/\\/some.where\\/example#psi-1\",\"sl:http:\\/\\/some.where\\/example#sl-1\"]") |
---|
513 | (string= (jtm::export-instance-ofs-to-jtm top-4) |
---|
514 | "[\"sl:http:\\/\\/some.where\\/example#sl-1\",\"si:http:\\/\\/some.where\\/example#psi-1\"]"))) |
---|
515 | (is (or (string= (jtm::export-instance-ofs-to-jtm top-4 :prefixes prefixes) |
---|
516 | "[\"si:[pref_1:example#psi-1]\",\"sl:[pref_1:example#sl-1]\"]") |
---|
517 | (string= (jtm::export-instance-ofs-to-jtm top-4 :prefixes prefixes) |
---|
518 | "[\"sl:[pref_1:example#sl-1]\",\"si:[pref_1:example#psi-1]\"]"))) |
---|
519 | (make-construct 'AssociationC :start-revision 100 |
---|
520 | :roles (list (list :player top-4 :instance-of tt |
---|
521 | :start-revision 100) |
---|
522 | (list :player top-5 :instance-of it |
---|
523 | :start-revision 100)) |
---|
524 | :instance-of tit) |
---|
525 | (signals exceptions:JTM-error (jtm::export-instance-ofs-to-jtm top-5))))) |
---|
526 | |
---|
527 | |
---|
528 | (test test-export-to-jtm-variant |
---|
529 | "Tests the function export-to-jtm bound to VariantC and the function |
---|
530 | export-construct-as-jtm-string also bound to VariantC." |
---|
531 | (with-fixture with-empty-db ("data_base") |
---|
532 | (let* ((name-1 (make-construct 'NameC :start-revision 100 |
---|
533 | :item-identifiers |
---|
534 | (list |
---|
535 | (make-construct 'ItemIdentifierC |
---|
536 | :uri "http://some.where/ii-1")) |
---|
537 | :charvalue "name-1")) |
---|
538 | (top-1 |
---|
539 | (make-construct 'TopicC :start-revision 100 |
---|
540 | :psis |
---|
541 | (list (make-construct 'PersistentIdC |
---|
542 | :uri "http://some.where/psi-1")))) |
---|
543 | (top-2 |
---|
544 | (make-construct 'TopicC :start-revision 100 |
---|
545 | :locators |
---|
546 | (list (make-construct 'SubjectLocatorC |
---|
547 | :uri "http://some.where/sl-1")))) |
---|
548 | (top-3 |
---|
549 | (make-construct 'TopicC :start-revision 100 |
---|
550 | :item-identifiers |
---|
551 | (list (make-construct 'ItemIdentifierC |
---|
552 | :uri "http://some.where/ii-2")))) |
---|
553 | (var-1 (make-construct 'VariantC :start-revision 100 |
---|
554 | :charvalue "var-1" |
---|
555 | :datatype *xml-string* |
---|
556 | :themes (list top-1) |
---|
557 | :parent name-1)) |
---|
558 | (var-2 (make-construct 'VariantC :start-revision 100 |
---|
559 | :item-identifiers |
---|
560 | (list |
---|
561 | (make-construct 'ItemIdentifierC |
---|
562 | :uri "http://some.where/ii-3")) |
---|
563 | :charvalue "http://any.uri" |
---|
564 | :themes (list top-2) |
---|
565 | :reifier top-3 |
---|
566 | :datatype *xml-uri*)) |
---|
567 | (jtm-1 (jtm::export-to-jtm var-1 :item-type-p nil :revision 0)) |
---|
568 | (jtm-2 (jtm::export-to-jtm var-2 :item-type-p nil :revision 0)) |
---|
569 | (jtm-str-1 (export-construct-as-jtm-string var-1 :revision 0)) |
---|
570 | (jtm-str-2 (export-construct-as-jtm-string |
---|
571 | var-2 :jtm-format :1.0 :parent-p nil :revision 0))) |
---|
572 | (is (string= jtm-1 |
---|
573 | (concat "{\"item_identifiers\":null,\"datatype\":" (json:encode-json-to-string *xml-string*) ",\"value\":\"var-1\",\"scope\":[\"si:http:\\/\\/some.where\\/psi-1\"],\"reifier\":null}"))) |
---|
574 | (is (string= jtm-2 |
---|
575 | (concat "{\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-3\"],\"datatype\":" (json:encode-json-to-string *xml-uri*) ",\"value\":\"http:\\/\\/any.uri\",\"scope\":[\"sl:http:\\/\\/some.where\\/sl-1\"],\"reifier\":\"ii:http:\\/\\/some.where\\/ii-2\"}"))) |
---|
576 | (is (string= jtm-str-1 |
---|
577 | (concat "{\"version\":\"1.1\",\"prefixes\":{\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_1\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":null,\"datatype\":" (json:encode-json-to-string *xml-string*) ",\"value\":\"var-1\",\"item_type\":\"variant\",\"parent\":[\"ii:[pref_1:ii-1]\"],\"scope\":[\"si:[pref_1:psi-1]\"],\"reifier\":null}"))) |
---|
578 | (is (string= jtm-str-2 |
---|
579 | (concat "{\"version\":\"1.0\",\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-3\"],\"datatype\":" (json:encode-json-to-string *xml-uri*) ",\"value\":\"http:\\/\\/any.uri\",\"item_type\":\"variant\",\"scope\":[\"sl:http:\\/\\/some.where\\/sl-1\"],\"reifier\":\"ii:http:\\/\\/some.where\\/ii-2\"}")))))) |
---|
580 | |
---|
581 | |
---|
582 | (test test-export-to-jtm-name |
---|
583 | "Tests the function export-to-jtm bound to NameC and the function |
---|
584 | export-construct-as-jtm-string also bound to NameC." |
---|
585 | (with-fixture with-empty-db ("data_base") |
---|
586 | (let* ((top-1 (make-construct 'TopicC :start-revision 100 |
---|
587 | :psis |
---|
588 | (list |
---|
589 | (make-construct 'PersistentIdC |
---|
590 | :uri "http://some.where/psi-1")))) |
---|
591 | (top-2 (make-construct 'TopicC :start-revision 100 |
---|
592 | :locators |
---|
593 | (list |
---|
594 | (make-construct 'SubjectLocatorC |
---|
595 | :uri "http://some.where/sl-1")))) |
---|
596 | (top-3 (make-construct 'TopicC :start-revision 100 |
---|
597 | :item-identifiers |
---|
598 | (list |
---|
599 | (make-construct 'ItemIdentifierC |
---|
600 | :uri "http://some.where/ii-1")))) |
---|
601 | (var-1 (make-construct 'VariantC :start-revision 100 |
---|
602 | :themes (list top-2) |
---|
603 | :charvalue "var-1")) |
---|
604 | (var-2 (make-construct 'VariantC :start-revision 100 |
---|
605 | :themes (list top-2) |
---|
606 | :charvalue "var-2")) |
---|
607 | (name-1 (make-construct 'NameC :start-revision 100 |
---|
608 | :item-identifiers |
---|
609 | (list |
---|
610 | (make-construct 'ItemIdentifierC |
---|
611 | :uri "http://some.where/ii-2")) |
---|
612 | :themes (list top-1) |
---|
613 | :instance-of top-2 |
---|
614 | :reifier top-3 |
---|
615 | :charvalue "name-1" |
---|
616 | :parent top-1 |
---|
617 | :variants (list var-1 var-2))) |
---|
618 | (name-2 (make-construct 'NameC :start-revision 100 |
---|
619 | :charvalue "name-2")) |
---|
620 | (jtm-1 (jtm::export-to-jtm name-1 :item-type-p nil :revision 0)) |
---|
621 | (jtm-2 (jtm::export-to-jtm name-2 :item-type-p nil :revision 0)) |
---|
622 | (jtm-str-1 (export-construct-as-jtm-string name-1 :revision 0)) |
---|
623 | (jtm-str-2 (export-construct-as-jtm-string |
---|
624 | name-2 :jtm-format :1.0 :parent-p nil :revision 0)) |
---|
625 | (prefixes (list (list :pref "pref_1" :value *xsd-ns*) |
---|
626 | (list :pref "xsd" :value *xsd-ns*) |
---|
627 | (list :pref "pref_2" :value "http://some.where/")))) |
---|
628 | (is (string= jtm-1 |
---|
629 | (concat "{\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-2\"],\"value\":\"name-1\",\"type\":\"sl:http:\\/\\/some.where\\/sl-1\",\"scope\":[\"si:http:\\/\\/some.where\\/psi-1\"],\"variants\":[" (jtm::export-to-jtm var-1 :item-type-p nil :revision 0) "," (jtm::export-to-jtm var-2 :item-type-p nil :revision 0) "],\"reifier\":\"ii:http:\\/\\/some.where\\/ii-1\"}"))) |
---|
630 | (is (string= jtm-2 |
---|
631 | "{\"item_identifiers\":null,\"value\":\"name-2\",\"type\":null,\"scope\":null,\"variants\":null,\"reifier\":null}")) |
---|
632 | (is (string= jtm-str-1 |
---|
633 | (concat "{\"version\":\"1.1\",\"prefixes\":{\"pref_1\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_2\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":[\"[pref_2:ii-2]\"],\"value\":\"name-1\",\"type\":\"sl:[pref_2:sl-1]\",\"item_type\":\"name\",\"parent\":[\"si:[pref_2:psi-1]\"],\"scope\":[\"si:[pref_2:psi-1]\"],\"variants\":[" (jtm::export-to-jtm var-1 :item-type-p nil :revision 0 :prefixes prefixes) "," (jtm::export-to-jtm var-2 :item-type-p nil :revision 0 :prefixes prefixes) "],\"reifier\":\"ii:[pref_2:ii-1]\"}"))) |
---|
634 | (is (string= jtm-str-2 |
---|
635 | "{\"version\":\"1.0\",\"item_identifiers\":null,\"value\":\"name-2\",\"type\":null,\"item_type\":\"name\",\"scope\":null,\"variants\":null,\"reifier\":null}"))))) |
---|
636 | |
---|
637 | |
---|
638 | |
---|
639 | (test test-export-to-jtm-occurrence |
---|
640 | "Tests the function export-to-jtm bound to OccurrenceC and the function |
---|
641 | export-construct-as-jtm-string also bound to OccurrenceC." |
---|
642 | (with-fixture with-empty-db ("data_base") |
---|
643 | (let* ((top-1 (make-construct 'TopicC :start-revision 100 |
---|
644 | :psis |
---|
645 | (list |
---|
646 | (make-construct 'PersistentIdC |
---|
647 | :uri "http://some.where/psi-1")))) |
---|
648 | (top-2 (make-construct 'TopicC :start-revision 100 |
---|
649 | :locators |
---|
650 | (list |
---|
651 | (make-construct 'SubjectLocatorC |
---|
652 | :uri "http://some.where/sl-1")))) |
---|
653 | (top-3 (make-construct 'TopicC :start-revision 100 |
---|
654 | :item-identifiers |
---|
655 | (list |
---|
656 | (make-construct 'ItemIdentifierC |
---|
657 | :uri "http://some.where/ii-1")))) |
---|
658 | (occ-1 (make-construct 'OccurrenceC :start-revision 100 |
---|
659 | :item-identifiers |
---|
660 | (list |
---|
661 | (make-construct 'ItemIdentifierC |
---|
662 | :uri "http://some.where/ii-2")) |
---|
663 | :themes (list top-1) |
---|
664 | :instance-of top-2 |
---|
665 | :reifier top-3 |
---|
666 | :charvalue "occ-1" |
---|
667 | :parent top-1)) |
---|
668 | (occ-2 (make-construct 'OccurrenceC :start-revision 100 |
---|
669 | :charvalue "http://any.uri" |
---|
670 | :datatype *xml-uri* |
---|
671 | :instance-of top-1)) |
---|
672 | (jtm-1 (jtm::export-to-jtm occ-1 :item-type-p nil :revision 0)) |
---|
673 | (jtm-2 (jtm::export-to-jtm occ-2 :item-type-p nil :revision 0)) |
---|
674 | (jtm-str-1 (export-construct-as-jtm-string occ-1 :revision 0)) |
---|
675 | (jtm-str-2 (export-construct-as-jtm-string |
---|
676 | occ-2 :jtm-format :1.0 :parent-p nil :revision 0))) |
---|
677 | (is (string= jtm-1 |
---|
678 | (concat "{\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-2\"],\"datatype\":" (json:encode-json-to-string *xml-string* ) ",\"type\":\"sl:http:\\/\\/some.where\\/sl-1\",\"value\":\"occ-1\",\"scope\":[\"si:http:\\/\\/some.where\\/psi-1\"],\"reifier\":\"ii:http:\\/\\/some.where\\/ii-1\"}"))) |
---|
679 | (is (string= jtm-2 |
---|
680 | (concat "{\"item_identifiers\":null,\"datatype\":" (json:encode-json-to-string *xml-uri* ) ",\"type\":\"si:http:\\/\\/some.where\\/psi-1\",\"value\":\"http:\\/\\/any.uri\",\"scope\":null,\"reifier\":null}"))) |
---|
681 | (is (string= jtm-str-1 |
---|
682 | (concat "{\"version\":\"1.1\",\"prefixes\":{\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_1\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":[\"[pref_1:ii-2]\"],\"datatype\":" (json:encode-json-to-string *xml-string* ) ",\"type\":\"sl:[pref_1:sl-1]\",\"value\":\"occ-1\",\"item_type\":\"occurrence\",\"parent\":[\"si:[pref_1:psi-1]\"],\"scope\":[\"si:[pref_1:psi-1]\"],\"reifier\":\"ii:[pref_1:ii-1]\"}"))) |
---|
683 | (is (string= jtm-str-2 |
---|
684 | (concat "{\"version\":\"1.0\",\"item_identifiers\":null,\"datatype\":" (json:encode-json-to-string *xml-uri* ) ",\"type\":\"si:http:\\/\\/some.where\\/psi-1\",\"value\":\"http:\\/\\/any.uri\",\"item_type\":\"occurrence\",\"scope\":null,\"reifier\":null}")))))) |
---|
685 | |
---|
686 | |
---|
687 | (test test-export-to-jtm-topic |
---|
688 | "Tests the function export-to-jtm bound to TopicC and the function |
---|
689 | export-construct-as-jtm-string also bound to TopicC." |
---|
690 | (with-fixture with-empty-db ("data_base") |
---|
691 | (let* ((top-1 (make-construct 'TopicC :start-revision 100 |
---|
692 | :psis |
---|
693 | (list |
---|
694 | (make-construct 'PersistentIdC |
---|
695 | :uri "http://some.where/psi-1") |
---|
696 | (make-construct 'PersistentIdC |
---|
697 | :uri "http://some.where/psi-2")) |
---|
698 | :item-identifiers |
---|
699 | (list |
---|
700 | (make-construct 'ItemIdentifierC |
---|
701 | :uri "http://some.where/ii-4")) |
---|
702 | :locators |
---|
703 | (list |
---|
704 | (make-construct 'SubjectLocatorC |
---|
705 | :uri "http://some.where/sl-2")))) |
---|
706 | (top-2 (make-construct 'TopicC :start-revision 100 |
---|
707 | :locators |
---|
708 | (list |
---|
709 | (make-construct 'SubjectLocatorC |
---|
710 | :uri "http://some.where/sl-1")))) |
---|
711 | (top-3 (make-construct 'TopicC :start-revision 100 |
---|
712 | :item-identifiers |
---|
713 | (list |
---|
714 | (make-construct 'ItemIdentifierC |
---|
715 | :uri "http://some.where/ii-1")))) |
---|
716 | (occ-1 (make-construct 'OccurrenceC :start-revision 100 |
---|
717 | :item-identifiers |
---|
718 | (list |
---|
719 | (make-construct 'ItemIdentifierC |
---|
720 | :uri "http://some.where/ii-2")) |
---|
721 | :themes (list top-1) |
---|
722 | :instance-of top-2 |
---|
723 | :reifier top-3 |
---|
724 | :charvalue "occ-1" |
---|
725 | :parent top-1)) |
---|
726 | (occ-2 (make-construct 'OccurrenceC :start-revision 100 |
---|
727 | :charvalue "http://any.uri" |
---|
728 | :datatype *xml-uri* |
---|
729 | :instance-of top-1 |
---|
730 | :parent top-1)) |
---|
731 | (name-1 (make-construct 'NameC :start-revision 100 |
---|
732 | :charvalue "name-1" |
---|
733 | :parent top-1)) |
---|
734 | (var-1 (make-construct 'VariantC :start-revision 100 |
---|
735 | :themes (list top-2 top-3) |
---|
736 | :charvalue "var-1")) |
---|
737 | (name-2 (make-construct 'NameC :start-revision 100 |
---|
738 | :charvalue "name-2" |
---|
739 | :themes (list top-2) |
---|
740 | :variants (list var-1) |
---|
741 | :parent top-1)) |
---|
742 | (tm (make-construct 'TopicMapC :start-revision 100 |
---|
743 | :item-identifiers |
---|
744 | (list |
---|
745 | (make-construct 'ItemIdentifierC |
---|
746 | :uri "http://some.where/ii-3")))) |
---|
747 | (tt (make-construct 'TopicC :start-revision 100 |
---|
748 | :psis |
---|
749 | (list |
---|
750 | (make-construct 'PersistentIdC :start-revision 100 |
---|
751 | :uri *type-psi*)))) |
---|
752 | (it (make-construct 'TopicC :start-revision 100 |
---|
753 | :psis |
---|
754 | (list |
---|
755 | (make-construct 'PersistentIdC :start-revision 100 |
---|
756 | :uri *instance-psi*)))) |
---|
757 | (tit (make-construct 'TopicC :start-revision 100 |
---|
758 | :psis |
---|
759 | (list |
---|
760 | (make-construct 'PersistentIdC :start-revision 100 |
---|
761 | :uri *type-instance-psi*)))) |
---|
762 | (jtm-1 (jtm::export-to-jtm top-1 :item-type-p nil :revision 0)) |
---|
763 | (jtm-str-1 (export-construct-as-jtm-string |
---|
764 | top-1 :revision 0 :parent-p nil)) |
---|
765 | (jtm-2 (progn |
---|
766 | (add-to-tm tm top-1) |
---|
767 | (make-construct 'AssociationC :start-revision 100 |
---|
768 | :instance-of tit |
---|
769 | :roles (list (list :player top-1 |
---|
770 | :start-revision 100 |
---|
771 | :instance-of it) |
---|
772 | (list :player top-2 |
---|
773 | :start-revision 100 |
---|
774 | :instance-of tt))) |
---|
775 | (make-construct 'AssociationC :start-revision 100 |
---|
776 | :instance-of tit |
---|
777 | :roles (list (list :player top-1 |
---|
778 | :start-revision 100 |
---|
779 | :instance-of it) |
---|
780 | (list :player top-3 |
---|
781 | :start-revision 100 |
---|
782 | :instance-of tt))) |
---|
783 | (jtm::export-to-jtm top-1 :item-type-p nil :revision 0))) |
---|
784 | (jtm-str-2 (export-construct-as-jtm-string |
---|
785 | top-1 :jtm-format :1.0 :revision 0)) |
---|
786 | (prefixes (list (list :pref "pref_1" :value *xsd-ns*) |
---|
787 | (list :pref "xsd" :value *xsd-ns*) |
---|
788 | (list :pref "pref_2" :value "http://some.where/")))) |
---|
789 | (or occ-1 occ-2 name-1 name-2) ;only to avoid compilation warnings |
---|
790 | (is (string= jtm-1 |
---|
791 | (concat "{\"subject_identifiers\":[\"http:\\/\\/some.where\\/psi-1\",\"http:\\/\\/some.where\\/psi-2\"],\"subject_locators\":[\"http:\\/\\/some.where\\/sl-2\"],\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-4\"],\"instance_of\":null,\"names\":[" (jtm::export-to-jtm (first (names top-1 :revision 0)) :item-type-p nil :revision 0) "," (jtm::export-to-jtm (second (names top-1 :revision 0)) :item-type-p nil :revision 0) "],\"occurrences\":[" (jtm::export-to-jtm (first (occurrences top-1 :revision 0)) :item-type-p nil :revision 0) "," (jtm::export-to-jtm (second (occurrences top-1 :revision 0)) :item-type-p nil :revision 0) "]}"))) |
---|
792 | (is (string= jtm-2 |
---|
793 | (concat "{\"subject_identifiers\":[\"http:\\/\\/some.where\\/psi-1\",\"http:\\/\\/some.where\\/psi-2\"],\"subject_locators\":[\"http:\\/\\/some.where\\/sl-2\"],\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-4\"],\"instance_of\":[\"sl:http:\\/\\/some.where\\/sl-1\",\"ii:http:\\/\\/some.where\\/ii-1\"],\"names\":[" (jtm::export-to-jtm (first (names top-1 :revision 0)) :item-type-p nil :revision 0) "," (jtm::export-to-jtm (second (names top-1 :revision 0)) :item-type-p nil :revision 0) "],\"occurrences\":[" (jtm::export-to-jtm (first (occurrences top-1 :revision 0)) :item-type-p nil :revision 0) "," (jtm::export-to-jtm (second (occurrences top-1 :revision 0)) :item-type-p nil :revision 0) "]}"))) |
---|
794 | (is (string= jtm-str-1 |
---|
795 | (concat "{\"version\":\"1.1\",\"prefixes\":{\"pref_1\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_2\":\"http:\\/\\/some.where\\/\"},\"subject_identifiers\":[\"[pref_2:psi-1]\",\"[pref_2:psi-2]\"],\"subject_locators\":[\"[pref_2:sl-2]\"],\"item_identifiers\":[\"[pref_2:ii-4]\"],\"instance_of\":null,\"item_type\":\"topic\",\"names\":[" (jtm::export-to-jtm (first (names top-1 :revision 0)) :item-type-p nil :revision 0 :prefixes prefixes :prefixes-p nil) "," (jtm::export-to-jtm (second (names top-1 :revision 0)) :item-type-p nil :revision 0 :prefixes prefixes :prefixes-p nil) "],\"occurrences\":[" (jtm::export-to-jtm (first (occurrences top-1 :revision 0)) :item-type-p nil :revision 0 :prefixes prefixes :prefixes-p nil) "," (jtm::export-to-jtm (second (occurrences top-1 :revision 0)) :item-type-p nil :revision 0 :prefixes prefixes :prefixes-p nil) "]}"))) |
---|
796 | (is (string= jtm-str-2 |
---|
797 | (concat "{\"version\":\"1.0\",\"subject_identifiers\":[\"http:\\/\\/some.where\\/psi-1\",\"http:\\/\\/some.where\\/psi-2\"],\"subject_locators\":[\"http:\\/\\/some.where\\/sl-2\"],\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-4\"],\"item_type\":\"topic\",\"parent\":[\"ii:http:\\/\\/some.where\\/ii-3\"],\"names\":[" (jtm::export-to-jtm (first (names top-1 :revision 0)) :item-type-p nil :revision 0) "," (jtm::export-to-jtm (second (names top-1 :revision 0)) :item-type-p nil :revision 0) "],\"occurrences\":[" (jtm::export-to-jtm (first (occurrences top-1 :revision 0)) :item-type-p nil :revision 0) "," (jtm::export-to-jtm (second (occurrences top-1 :revision 0)) :item-type-p nil :revision 0) "]}")))))) |
---|
798 | |
---|
799 | |
---|
800 | (test test-export-to-jtm-role |
---|
801 | "Tests the function export-to-jtm bound to RoleC and the function |
---|
802 | export-construct-as-jtm-string also bound to RoleC." |
---|
803 | (with-fixture with-empty-db ("data_base") |
---|
804 | (let* ((top-1 (make-construct 'TopicC :start-revision 100 |
---|
805 | :psis |
---|
806 | (list |
---|
807 | (make-construct 'PersistentIdC |
---|
808 | :uri "http://some.where/psi-1")))) |
---|
809 | (top-2 (make-construct 'TopicC :start-revision 100 |
---|
810 | :locators |
---|
811 | (list |
---|
812 | (make-construct 'SubjectLocatorC |
---|
813 | :uri "http://some.where/sl-1")))) |
---|
814 | (top-3 (make-construct 'TopicC :start-revision 100 |
---|
815 | :item-identifiers |
---|
816 | (list |
---|
817 | (make-construct 'ItemIdentifierC |
---|
818 | :uri "http://some.where/ii-1")))) |
---|
819 | (top-4 (make-construct 'TopicC :start-revision 100 |
---|
820 | :locators |
---|
821 | (list |
---|
822 | (make-construct 'SubjectLocatorC |
---|
823 | :uri "http://some.where/sl-2")))) |
---|
824 | (assoc-1 (make-construct 'AssociationC :start-revision 100 |
---|
825 | :item-identifiers |
---|
826 | (list |
---|
827 | (make-construct 'ItemIdentifierC |
---|
828 | :uri "http://some.where/ii-2")))) |
---|
829 | (role-1 (make-construct 'RoleC :start-revision 100 |
---|
830 | :player top-1 |
---|
831 | :instance-of top-2 |
---|
832 | :item-identifiers |
---|
833 | (list |
---|
834 | (make-construct 'ItemIdentifierC |
---|
835 | :uri "http://some.where/ii-3") |
---|
836 | (make-construct 'ItemIdentifierC |
---|
837 | :uri "http://some.where/ii-4")) |
---|
838 | :reifier top-4 |
---|
839 | :parent assoc-1)) |
---|
840 | (role-2 (make-construct 'RoleC :start-revision 100 |
---|
841 | :player top-2 |
---|
842 | :instance-of top-3)) |
---|
843 | (jtm-1 (jtm::export-to-jtm role-1 :item-type-p nil :revision 0)) |
---|
844 | (jtm-2 (jtm::export-to-jtm role-2 :item-type-p nil :revision 0)) |
---|
845 | (jtm-str-1 (export-construct-as-jtm-string role-1 :revision 0)) |
---|
846 | (jtm-str-2 (export-construct-as-jtm-string |
---|
847 | role-2 :jtm-format :1.0 :parent-p nil :revision 0))) |
---|
848 | (is (string= jtm-1 |
---|
849 | "{\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-3\",\"http:\\/\\/some.where\\/ii-4\"],\"type\":\"sl:http:\\/\\/some.where\\/sl-1\",\"reifier\":\"sl:http:\\/\\/some.where\\/sl-2\",\"player\":\"si:http:\\/\\/some.where\\/psi-1\"}")) |
---|
850 | (is (string= jtm-2 |
---|
851 | "{\"item_identifiers\":null,\"type\":\"ii:http:\\/\\/some.where\\/ii-1\",\"reifier\":null,\"player\":\"sl:http:\\/\\/some.where\\/sl-1\"}")) |
---|
852 | (is (string= jtm-str-1 |
---|
853 | "{\"version\":\"1.1\",\"prefixes\":{\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_1\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":[\"[pref_1:ii-3]\",\"[pref_1:ii-4]\"],\"type\":\"sl:[pref_1:sl-1]\",\"item_type\":\"role\",\"parent\":[\"ii:[pref_1:ii-2]\"],\"reifier\":\"sl:[pref_1:sl-2]\",\"player\":\"si:[pref_1:psi-1]\"}")) |
---|
854 | (is (string= jtm-str-2 |
---|
855 | "{\"version\":\"1.0\",\"item_identifiers\":null,\"type\":\"ii:http:\\/\\/some.where\\/ii-1\",\"item_type\":\"role\",\"reifier\":null,\"player\":\"sl:http:\\/\\/some.where\\/sl-1\"}"))))) |
---|
856 | |
---|
857 | |
---|
858 | (test test-export-to-jtm-association |
---|
859 | "Tests the function export-to-jtm bound to AssociationC and the function |
---|
860 | export-construct-as-jtm-string also bound to AssociationC." |
---|
861 | (with-fixture with-empty-db ("data_base") |
---|
862 | (let* ((top-1 (make-construct 'TopicC :start-revision 100 |
---|
863 | :psis |
---|
864 | (list |
---|
865 | (make-construct 'PersistentIdC |
---|
866 | :uri "http://some.where/psi-1")))) |
---|
867 | (top-2 (make-construct 'TopicC :start-revision 100 |
---|
868 | :locators |
---|
869 | (list |
---|
870 | (make-construct 'SubjectLocatorC |
---|
871 | :uri "http://some.where/sl-1")))) |
---|
872 | (top-3 (make-construct 'TopicC :start-revision 100 |
---|
873 | :item-identifiers |
---|
874 | (list |
---|
875 | (make-construct 'ItemIdentifierC |
---|
876 | :uri "http://some.where/ii-1")))) |
---|
877 | (assoc-1 (make-construct 'AssociationC :start-revision 100 |
---|
878 | :item-identifiers |
---|
879 | (list |
---|
880 | (make-construct 'ItemIdentifierC |
---|
881 | :uri "http://some.where/ii-2") |
---|
882 | (make-construct 'ItemIdentifierC |
---|
883 | :uri "http://some.where/ii-3")) |
---|
884 | :instance-of top-1 |
---|
885 | :themes (list top-1) |
---|
886 | :roles |
---|
887 | (list (list :player top-1 |
---|
888 | :instance-of top-2 |
---|
889 | :start-revision 100) |
---|
890 | (list :player top-2 |
---|
891 | :instance-of top-3 |
---|
892 | :start-revision 100)))) |
---|
893 | (assoc-2 (make-construct 'AssociationC :start-revision 100 |
---|
894 | :instance-of top-1 |
---|
895 | :reifier top-2 |
---|
896 | :roles |
---|
897 | (list (list :player top-2 |
---|
898 | :instance-of top-3 |
---|
899 | :start-revision 100)))) |
---|
900 | (tm (make-construct 'TopicMapC :start-revision 100 |
---|
901 | :item-identifiers |
---|
902 | (list |
---|
903 | (make-construct 'ItemIdentifierC |
---|
904 | :uri "http://some.where/ii-4")))) |
---|
905 | (jtm-1 (jtm::export-to-jtm assoc-1 :item-type-p nil :revision 0)) |
---|
906 | (jtm-2 (jtm::export-to-jtm assoc-2 :item-type-p nil :revision 0)) |
---|
907 | (jtm-str-1 (progn |
---|
908 | (add-to-tm tm assoc-1) |
---|
909 | (export-construct-as-jtm-string assoc-1 :revision 0))) |
---|
910 | (jtm-str-2 (export-construct-as-jtm-string |
---|
911 | assoc-2 :jtm-format :1.0 :parent-p nil :revision 0)) |
---|
912 | (prefixes (list (list :pref "pref_1" :value *xsd-ns*) |
---|
913 | (list :pref "xsd" :value *xsd-ns*) |
---|
914 | (list :pref "pref_2" :value "http://some.where/")))) |
---|
915 | (is (string= jtm-1 |
---|
916 | (concat "{\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-2\",\"http:\\/\\/some.where\\/ii-3\"],\"type\":\"si:http:\\/\\/some.where\\/psi-1\",\"reifier\":null,\"scope\":[\"si:http:\\/\\/some.where\\/psi-1\"],\"roles\":[" (jtm::export-to-jtm (first (roles assoc-1 :revision 0)) :item-type-p nil :revision 0) "," (jtm::export-to-jtm (second (roles assoc-1 :revision 0)) :item-type-p nil :revision 0) "]}"))) |
---|
917 | (is (string= jtm-2 |
---|
918 | (concat "{\"item_identifiers\":null,\"type\":\"si:http:\\/\\/some.where\\/psi-1\",\"reifier\":\"sl:http:\\/\\/some.where\\/sl-1\",\"scope\":null,\"roles\":[" (jtm::export-to-jtm (first (roles assoc-2 :revision 0)) :item-type-p nil :revision 0)"]}"))) |
---|
919 | (is (string= jtm-str-1 |
---|
920 | (concat "{\"version\":\"1.1\",\"prefixes\":{\"pref_1\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_2\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":[\"[pref_2:ii-2]\",\"[pref_2:ii-3]\"],\"type\":\"si:[pref_2:psi-1]\",\"item_type\":\"association\",\"parent\":[\"ii:[pref_2:ii-4]\"],\"reifier\":null,\"scope\":[\"si:[pref_2:psi-1]\"],\"roles\":[" (jtm::export-to-jtm (first (roles assoc-1 :revision 0)) :item-type-p nil :revision 0 :prefixes prefixes) "," (jtm::export-to-jtm (second (roles assoc-1 :revision 0)) :item-type-p nil :revision 0 :prefixes prefixes) "]}"))) |
---|
921 | (is (string= jtm-str-2 |
---|
922 | (concat "{\"version\":\"1.0\",\"item_identifiers\":null,\"type\":\"si:http:\\/\\/some.where\\/psi-1\",\"item_type\":\"association\",\"reifier\":\"sl:http:\\/\\/some.where\\/sl-1\",\"scope\":null,\"roles\":[" (jtm::export-to-jtm (first (roles assoc-2 :revision 0)) :item-type-p nil :revision 0)"]}")))))) |
---|
923 | |
---|
924 | |
---|
925 | (test test-export-to-jtm-fragment |
---|
926 | "Tests the function export-to-jtm bound to FragmentC and the function |
---|
927 | export-construct-as-jtm-string also bound to FragmentC." |
---|
928 | (with-fixture with-tm-filled-db ("data_base" *sparql_test.xtm*) |
---|
929 | (let* ((fragment |
---|
930 | (d::create-latest-fragment-of-topic |
---|
931 | "http://some.where/tmsparql/author/goethe")) |
---|
932 | (jtm-1 (jtm::export-to-jtm fragment :item-type-p nil :revision 0)) |
---|
933 | (jtm-str-1 (export-construct-as-jtm-string fragment :revision 0)) |
---|
934 | (jtm-str-2 (export-construct-as-jtm-string |
---|
935 | fragment :jtm-format :1.0 :parent-p nil :revision 0)) |
---|
936 | (prefixes (list |
---|
937 | (list :pref "pref_1" |
---|
938 | :value "http://some.where/tmsparql/author/") |
---|
939 | (list :pref "xsd" :value *xsd-ns*) |
---|
940 | (list :pref "pref_3" :value "http://some.where/psis/poem/") |
---|
941 | (list :pref "pref_2" :value "http://some.where/tmsparql/") |
---|
942 | (list :pref "pref_4" :value "http://some.where/ii/zb/") |
---|
943 | (list :pref "pref_5" :value "http://some.where/ii/")))) |
---|
944 | (is (string= jtm-1 |
---|
945 | (concat "{\"topics\":" |
---|
946 | (jtm::export-topics-to-jtm |
---|
947 | (append (d:referenced-topics fragment) |
---|
948 | (list (d:topic fragment)) |
---|
949 | (list |
---|
950 | (d:get-item-by-psi *type-instance-psi* |
---|
951 | :revision 0) |
---|
952 | (d:get-item-by-psi *instance-psi* |
---|
953 | :revision 0) |
---|
954 | (d:get-item-by-psi *type-psi* |
---|
955 | :revision 0))) |
---|
956 | :item-type-p nil :parent-p nil :prefixes nil |
---|
957 | :revision 0 :instance-of-p nil) |
---|
958 | ",\"associations\":" |
---|
959 | (jtm::export-associations-to-jtm |
---|
960 | (append |
---|
961 | (d:associations fragment) |
---|
962 | (instance-of-associations (topic fragment) :revision 0)) |
---|
963 | :item-type-p nil :parent-p nil :prefixes nil :revision 0) |
---|
964 | ",\"item_identifiers\":null,\"reifier\":null}"))) |
---|
965 | (is (string= jtm-str-1 |
---|
966 | (concat "{\"version\":\"1.1\",\"prefixes\":" |
---|
967 | (jtm::export-prefix-list-to-jtm prefixes) |
---|
968 | ",\"topics\":" |
---|
969 | (jtm::export-topics-to-jtm |
---|
970 | (append (d:referenced-topics fragment) |
---|
971 | (list (d:topic fragment))) |
---|
972 | :item-type-p nil :parent-p nil :prefixes prefixes |
---|
973 | :revision 0 :instance-of-p t) |
---|
974 | ",\"associations\":" |
---|
975 | (jtm::export-associations-to-jtm |
---|
976 | (d:associations fragment) |
---|
977 | :item-type-p nil :parent-p nil |
---|
978 | :prefixes prefixes :revision 0) |
---|
979 | ",\"item_type\":\"topicmap\",\"item_identifiers\":null,\"reifier\":null}"))) |
---|
980 | (is (string= jtm-str-2 |
---|
981 | (concat "{\"version\":\"1.0\",\"topics\":" |
---|
982 | (jtm::export-topics-to-jtm |
---|
983 | (append (d:referenced-topics fragment) |
---|
984 | (list (d:topic fragment)) |
---|
985 | (list |
---|
986 | (d:get-item-by-psi *type-instance-psi* |
---|
987 | :revision 0) |
---|
988 | (d:get-item-by-psi *instance-psi* |
---|
989 | :revision 0) |
---|
990 | (d:get-item-by-psi *type-psi* |
---|
991 | :revision 0))) |
---|
992 | :item-type-p nil :parent-p nil :prefixes nil |
---|
993 | :revision 0 :instance-of-p nil) |
---|
994 | ",\"associations\":" |
---|
995 | (jtm::export-associations-to-jtm |
---|
996 | (append |
---|
997 | (d:associations fragment) |
---|
998 | (instance-of-associations (topic fragment) :revision 0)) |
---|
999 | :item-type-p nil :parent-p nil :prefixes nil :revision 0) |
---|
1000 | ",\"item_type\":\"topicmap\",\"item_identifiers\":null,\"reifier\":null}")))))) |
---|
1001 | |
---|
1002 | |
---|
1003 | (test test-export-as-jtm |
---|
1004 | "Tests the function export-as-jtm." |
---|
1005 | (with-fixture with-tm-filled-db ("data_base" *sparql_test.xtm*) |
---|
1006 | (let ((jtm-path-1 |
---|
1007 | (merge-pathnames |
---|
1008 | (asdf:component-pathname |
---|
1009 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
1010 | "out_sparql_xtm_1.jtm")) |
---|
1011 | (jtm-path-2 |
---|
1012 | (merge-pathnames |
---|
1013 | (asdf:component-pathname |
---|
1014 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
1015 | "out_sparql_xtm_2.jtm")) |
---|
1016 | (jtm-path-3 |
---|
1017 | (merge-pathnames |
---|
1018 | (asdf:component-pathname |
---|
1019 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
1020 | "out_sparql_xtm_3.jtm")) |
---|
1021 | (jtm-path-4 |
---|
1022 | (merge-pathnames |
---|
1023 | (asdf:component-pathname |
---|
1024 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
1025 | "out_sparql_xtm_4.jtm"))) |
---|
1026 | (handler-case (delete-file jtm-path-1) (condition () nil)) |
---|
1027 | (handler-case (delete-file jtm-path-2) (condition () nil)) |
---|
1028 | (handler-case (delete-file jtm-path-3) (condition () nil)) |
---|
1029 | (handler-case (delete-file jtm-path-4) (condition () nil)) |
---|
1030 | (export-as-jtm jtm-path-1 :tm-id nil :revision 0 :jtm-format :1.1) |
---|
1031 | (export-as-jtm jtm-path-2 :tm-id nil :revision 0 :jtm-format :1.0) |
---|
1032 | (export-as-jtm jtm-path-3 :tm-id fixtures::tm-id :revision 0 :jtm-format :1.1) |
---|
1033 | (export-as-jtm jtm-path-4 :tm-id fixtures::tm-id :revision 0 :jtm-format :1.0) |
---|
1034 | (let ((jtm-str-1 (read-file-to-string jtm-path-1)) |
---|
1035 | (jtm-str-2 (read-file-to-string jtm-path-2)) |
---|
1036 | (jtm-str-3 (read-file-to-string jtm-path-3)) |
---|
1037 | (jtm-str-4 (read-file-to-string jtm-path-4)) |
---|
1038 | (prefixes (list |
---|
1039 | (list :pref "pref_1" |
---|
1040 | :value "http://www.topicmaps.org/xtm/1.0/core.xtm#") |
---|
1041 | (list :pref "pref_2" |
---|
1042 | :value "http://psi.topicmaps.org/iso13250/model/") |
---|
1043 | (list :pref "pref_5" |
---|
1044 | :value "http://some.where/tmsparql/author/") |
---|
1045 | (list :pref "xsd" :value *xsd-ns*) |
---|
1046 | (list :pref "pref_3" |
---|
1047 | :value "http://psi.topicmaps.org/tmcl/") |
---|
1048 | (list :pref "pref_6" |
---|
1049 | :value "http://some.where/psis/poem/") |
---|
1050 | (list :pref "pref_4" |
---|
1051 | :value "http://some.where/tmsparql/") |
---|
1052 | (list :pref "pref_7" |
---|
1053 | :value "http://some.where/ii/zb/") |
---|
1054 | (list :pref "pref_8" |
---|
1055 | :value "http://some.where/ii/"))) |
---|
1056 | (prefixes-2 (list |
---|
1057 | (list :pref "pref_3" |
---|
1058 | :value "http://some.where/tmsparql/author/") |
---|
1059 | (list :pref "xsd" :value *xsd-ns*) |
---|
1060 | (list :pref "pref_7" |
---|
1061 | :value "http://www.isidor.us/unittests/") |
---|
1062 | (list :pref "pref_5" |
---|
1063 | :value "http://psi.topicmaps.org/tmcl/") |
---|
1064 | (list :pref "pref_1" |
---|
1065 | :value "http://some.where/psis/poem/") |
---|
1066 | (list :pref "pref_4" |
---|
1067 | :value "http://some.where/tmsparql/") |
---|
1068 | (list :pref "pref_2" |
---|
1069 | :value "http://some.where/ii/zb/") |
---|
1070 | (list :pref "pref_6" |
---|
1071 | :value "http://some.where/ii/")))) |
---|
1072 | (is (string= jtm-str-1 |
---|
1073 | (concat "{\"version\":\"1.1\",\"prefixes\":" |
---|
1074 | (jtm::export-prefix-list-to-jtm prefixes) |
---|
1075 | ",\"item_identifiers\":null,\"topics\":" |
---|
1076 | (jtm::export-topics-to-jtm |
---|
1077 | (elephant:get-instances-by-class 'd:TopicC) |
---|
1078 | :item-type-p nil :parent-p nil :prefixes prefixes |
---|
1079 | :instance-of-p t :revision 0) |
---|
1080 | ",\"associations\":" |
---|
1081 | (jtm::export-associations-to-jtm |
---|
1082 | (remove-null |
---|
1083 | (map 'list |
---|
1084 | #'(lambda(assoc) |
---|
1085 | (unless (eql |
---|
1086 | (d:instance-of assoc :revision 0) |
---|
1087 | (d:get-item-by-psi *type-instance-psi* |
---|
1088 | :revision 0)) |
---|
1089 | assoc)) |
---|
1090 | (elephant:get-instances-by-class 'd:AssociationC))) |
---|
1091 | :item-type-p nil :parent-p nil :prefixes prefixes |
---|
1092 | :revision 0) |
---|
1093 | ",\"item_type\":\"topicmap\",\"reifier\":null}"))) |
---|
1094 | (is (string= |
---|
1095 | jtm-str-2 |
---|
1096 | (concat "{\"version\":\"1.0\"," |
---|
1097 | "\"item_identifiers\":null,\"topics\":" |
---|
1098 | (jtm::export-topics-to-jtm |
---|
1099 | (elephant:get-instances-by-class 'd:TopicC) |
---|
1100 | :item-type-p nil :parent-p nil |
---|
1101 | :instance-of-p nil :revision 0) |
---|
1102 | ",\"associations\":" |
---|
1103 | (jtm::export-associations-to-jtm |
---|
1104 | (elephant:get-instances-by-class 'd:AssociationC) |
---|
1105 | :item-type-p nil :parent-p nil :revision 0) |
---|
1106 | ",\"item_type\":\"topicmap\",\"reifier\":null}"))) |
---|
1107 | (is (string= jtm-str-3 |
---|
1108 | (concat "{\"version\":\"1.1\",\"prefixes\":" |
---|
1109 | (jtm::export-prefix-list-to-jtm prefixes-2) |
---|
1110 | ",\"item_identifiers\":[\"[pref_7:testtm]\"],\"topics\":" |
---|
1111 | (jtm::export-topics-to-jtm |
---|
1112 | (reverse |
---|
1113 | (remove |
---|
1114 | (d:get-item-by-psi *type-instance-psi* :revision 0) |
---|
1115 | (remove |
---|
1116 | (d:get-item-by-psi *instance-psi* :revision 0) |
---|
1117 | (remove |
---|
1118 | (d:get-item-by-psi *type-psi* :revision 0) |
---|
1119 | (d:topics |
---|
1120 | (d:identified-construct |
---|
1121 | (elephant:get-instance-by-value |
---|
1122 | 'd:ItemIdentifierC 'd:uri |
---|
1123 | "http://www.isidor.us/unittests/testtm") |
---|
1124 | :revision 0)))))) |
---|
1125 | :item-type-p nil :parent-p nil :prefixes prefixes-2 |
---|
1126 | :instance-of-p t :revision 0) |
---|
1127 | ",\"associations\":" |
---|
1128 | (jtm::export-associations-to-jtm |
---|
1129 | (remove-null |
---|
1130 | (map 'list |
---|
1131 | #'(lambda(assoc) |
---|
1132 | (unless |
---|
1133 | (eql |
---|
1134 | (d:instance-of assoc :revision 0) |
---|
1135 | (d:get-item-by-psi *type-instance-psi* |
---|
1136 | :revision 0)) |
---|
1137 | assoc)) |
---|
1138 | (d:associations |
---|
1139 | (d:identified-construct |
---|
1140 | (elephant:get-instance-by-value |
---|
1141 | 'd:ItemIdentifierC 'd:uri |
---|
1142 | "http://www.isidor.us/unittests/testtm") |
---|
1143 | :revision 0)))) |
---|
1144 | :item-type-p nil :parent-p nil :prefixes prefixes-2 |
---|
1145 | :revision 0) |
---|
1146 | ",\"item_type\":\"topicmap\",\"reifier\":null}"))) |
---|
1147 | (is (string= |
---|
1148 | jtm-str-4 |
---|
1149 | (concat "{\"version\":\"1.0\",\"item_identifiers\":" |
---|
1150 | "[\"http:\\/\\/www.isidor.us\\/unittests\\/testtm\"]" |
---|
1151 | ",\"topics\":" |
---|
1152 | (jtm::export-topics-to-jtm |
---|
1153 | (d:topics |
---|
1154 | (d:identified-construct |
---|
1155 | (elephant:get-instance-by-value |
---|
1156 | 'd:ItemIdentifierC 'd:uri |
---|
1157 | "http://www.isidor.us/unittests/testtm") |
---|
1158 | :revision 0)) |
---|
1159 | :item-type-p nil :parent-p nil :instance-of-p nil :revision 0) |
---|
1160 | ",\"associations\":" |
---|
1161 | (jtm::export-associations-to-jtm |
---|
1162 | (d:associations |
---|
1163 | (d:identified-construct |
---|
1164 | (elephant:get-instance-by-value |
---|
1165 | 'd:ItemIdentifierC 'd:uri |
---|
1166 | "http://www.isidor.us/unittests/testtm") |
---|
1167 | :revision 0)) |
---|
1168 | :item-type-p nil :parent-p nil :revision 0) |
---|
1169 | ",\"item_type\":\"topicmap\",\"reifier\":null}"))))))) |
---|
1170 | |
---|
1171 | |
---|
1172 | (test test-import-jtm-references-1 |
---|
1173 | "Tests all functions that are responsible for processing and searching |
---|
1174 | constructs by jtm-references." |
---|
1175 | (with-fixture with-empty-db ("data_base") |
---|
1176 | (let ((prefixes (list (list :pref "pref_1" :value "http://pref.org/") |
---|
1177 | (list :pref "pref_3" :value "http://pref.org/app/") |
---|
1178 | (list :pref "pref_2" :value "http://pref.org/app#")))) |
---|
1179 | (is (string= (jtm::compute-full-uri prefixes "pref_1" "suffix-1") |
---|
1180 | "http://pref.org/suffix-1")) |
---|
1181 | (is (string= (jtm::compute-full-uri prefixes "pref_3" "suffix-2") |
---|
1182 | "http://pref.org/app/suffix-2")) |
---|
1183 | (is (string= (jtm::compute-full-uri prefixes "pref_2" "suffix-3") |
---|
1184 | "http://pref.org/app#suffix-3")) |
---|
1185 | (signals exceptions:jtm-error |
---|
1186 | (jtm::compute-full-uri prefixes "pref_4" "suffix-3")) |
---|
1187 | (signals exceptions:jtm-error |
---|
1188 | (jtm::compute-full-uri prefixes "pref_1" "")) |
---|
1189 | (is (eql (jtm::get-identifier-type-from-jtm-reference "ii:[pref:suff]") |
---|
1190 | 'ItemIdentifierC)) |
---|
1191 | (is (eql (jtm::get-identifier-type-from-jtm-reference "si:http://pref.suf") |
---|
1192 | 'PersistentIdC)) |
---|
1193 | (is (eql (jtm::get-identifier-type-from-jtm-reference "sl:") |
---|
1194 | 'SubjectLocatorC)) |
---|
1195 | (signals exceptions::JTM-error |
---|
1196 | (jtm::get-identifier-type-from-jtm-reference "xy:[pref:suff]")) |
---|
1197 | (signals exceptions::JTM-error |
---|
1198 | (jtm::get-identifier-type-from-jtm-reference "ii[pref:suff]")) |
---|
1199 | (signals exceptions::JTM-error |
---|
1200 | (jtm::get-identifier-type-from-jtm-reference "")) |
---|
1201 | (is (string= (jtm::compute-uri-from-jtm-identifier "http://any.uri" nil) |
---|
1202 | "http://any.uri")) |
---|
1203 | (is (string= |
---|
1204 | (jtm::compute-uri-from-jtm-identifier "http://any.uri" prefixes) |
---|
1205 | "http://any.uri")) |
---|
1206 | (is (string= |
---|
1207 | (jtm::compute-uri-from-jtm-identifier "pref_1:any.uri" prefixes) |
---|
1208 | "pref_1:any.uri")) |
---|
1209 | (is (string= |
---|
1210 | (jtm::compute-uri-from-jtm-identifier "[pref_1:any.uri]" prefixes) |
---|
1211 | "http://pref.org/any.uri")) |
---|
1212 | (signals exceptions::JTM-error |
---|
1213 | (jtm::compute-uri-from-jtm-identifier "[pref_5:any.uri]" prefixes)) |
---|
1214 | (signals exceptions::JTM-error |
---|
1215 | (jtm::compute-uri-from-jtm-identifier "" prefixes)) |
---|
1216 | (signals exceptions::JTM-error |
---|
1217 | (jtm::compute-uri-from-jtm-identifier "[]" prefixes)) |
---|
1218 | (signals exceptions::JTM-error |
---|
1219 | (jtm::compute-uri-from-jtm-identifier "[any.uri]" prefixes)) |
---|
1220 | (signals exceptions::JTM-error |
---|
1221 | (jtm::compute-uri-from-jtm-identifier "[pref:]" prefixes)) |
---|
1222 | (signals exceptions::JTM-error |
---|
1223 | (jtm::compute-uri-from-jtm-identifier "[:suffix]" prefixes)) |
---|
1224 | (is (string= |
---|
1225 | (jtm::compute-uri-from-jtm-identifier "[http://any.uri" prefixes) |
---|
1226 | "[http://any.uri")) |
---|
1227 | (is (string= |
---|
1228 | (jtm::compute-uri-from-jtm-identifier "http://any.uri]" prefixes) |
---|
1229 | "http://any.uri]"))))) |
---|
1230 | |
---|
1231 | |
---|
1232 | (test test-import-jtm-references-2 |
---|
1233 | "Tests all functions that are responsible for processing and searching |
---|
1234 | constructs by jtm-references." |
---|
1235 | (with-fixture with-empty-db ("data_base") |
---|
1236 | (let ((prefixes (list (list :pref "pref_1" :value "http://pref.org/") |
---|
1237 | (list :pref "pref_3" :value "http://pref.org/app/") |
---|
1238 | (list :pref "pref_2" :value "http://pref.org/app#"))) |
---|
1239 | (top-1 (make-construct 'TopicC :start-revision 100 |
---|
1240 | :psis |
---|
1241 | (list (make-construct |
---|
1242 | 'PersistentIdC |
---|
1243 | :uri "http://pref.org/app#psi-1") |
---|
1244 | (make-construct |
---|
1245 | 'PersistentIdC |
---|
1246 | :uri "http://pref.org/app/psi-1")) |
---|
1247 | :item-identifiers |
---|
1248 | (list (make-construct |
---|
1249 | 'ItemIdentifierC |
---|
1250 | :uri "http://pref.org/iis/ii-1")) |
---|
1251 | :locators |
---|
1252 | (list (make-construct |
---|
1253 | 'SubjectLocatorC |
---|
1254 | :uri "http://some.where/app/sl-1")))) |
---|
1255 | (assoc-1 (make-construct 'AssociationC :start-revision 100 |
---|
1256 | :item-identifiers |
---|
1257 | (list (make-construct |
---|
1258 | 'ItemIdentifierC |
---|
1259 | :uri "http://pref.org/app#ii-2"))))) |
---|
1260 | (is (eql (jtm::get-item-from-jtm-reference |
---|
1261 | "si:http://pref.org/app#psi-1" :revision 0 :prefixes prefixes) |
---|
1262 | top-1)) |
---|
1263 | (is (eql (jtm::get-item-from-jtm-reference |
---|
1264 | "si:[pref_2:psi-1]" :revision 0 :prefixes prefixes) |
---|
1265 | top-1)) |
---|
1266 | (is (eql (jtm::get-item-from-jtm-reference |
---|
1267 | "si:[pref_3:psi-1]" :revision 0 :prefixes prefixes) |
---|
1268 | top-1)) |
---|
1269 | (is (eql (jtm::get-item-from-jtm-reference |
---|
1270 | "si:[pref_1:app#psi-1]" :revision 0 :prefixes prefixes) |
---|
1271 | top-1)) |
---|
1272 | (signals exceptions::missing-reference-error |
---|
1273 | (jtm::get-item-from-jtm-reference |
---|
1274 | "sl:http://pref.org/app/sl-1" :revision 0)) |
---|
1275 | (is (eql (jtm::get-item-from-jtm-reference |
---|
1276 | "sl:http://some.where/app/sl-1" :revision 0) |
---|
1277 | top-1)) |
---|
1278 | (is (eql (jtm::get-item-from-jtm-reference |
---|
1279 | "ii:http://pref.org/iis/ii-1" :revision 0 :prefixes prefixes) |
---|
1280 | top-1)) |
---|
1281 | (is (eql (jtm::get-item-from-jtm-reference |
---|
1282 | "ii:[pref_1:iis/ii-1]" :revision 0 :prefixes prefixes) |
---|
1283 | top-1)) |
---|
1284 | (signals exceptions::jtm-error |
---|
1285 | (jtm::get-item-from-jtm-reference |
---|
1286 | "ii:[pref_1:iis/ii-1]" :revision 0)) |
---|
1287 | (signals exceptions::missing-reference-error |
---|
1288 | (jtm::get-item-from-jtm-reference |
---|
1289 | "si:[pref_1:iis/ii-1]" :revision 0 :prefixes prefixes)) |
---|
1290 | (is (eql (jtm::get-item-from-jtm-reference |
---|
1291 | "ii:http://pref.org/app#ii-2" :revision 0 :prefixes prefixes) |
---|
1292 | assoc-1)) |
---|
1293 | (is (eql (jtm::get-item-from-jtm-reference |
---|
1294 | "ii:[pref_2:ii-2]" :revision 0 :prefixes prefixes) |
---|
1295 | assoc-1)) |
---|
1296 | (let ((refs (jtm::get-items-from-jtm-references |
---|
1297 | (list "si:http://pref.org/app#psi-1" |
---|
1298 | "si:[pref_2:psi-1]" |
---|
1299 | "sl:http://some.where/app/sl-1" |
---|
1300 | "ii:http://pref.org/iis/ii-1" |
---|
1301 | "ii:http://pref.org/app#ii-2" |
---|
1302 | "ii:[pref_2:ii-2]") |
---|
1303 | :revision 0 :prefixes prefixes))) |
---|
1304 | (dotimes (idx 3) |
---|
1305 | (is (eql (elt refs idx) top-1))) |
---|
1306 | (dotimes (idx 2) |
---|
1307 | (is (eql (elt refs (+ idx 4)) assoc-1))))))) |
---|
1308 | |
---|
1309 | |
---|
1310 | (test test-get-item |
---|
1311 | "Tests the function get-item." |
---|
1312 | (let* ((jtm-variant "{\"version\":\"1.1\",\"prefixes\":{\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_1\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":[\"http://some.where/ii-1\",\"[pref_1:ii-2]\"],\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"value\":\"var-1\",\"item_type\":\"variant\",\"parent\":[\"ii:[pref_1:ii-1]\"],\"scope\":[\"si:[pref_1:psi-1]\"],\"reifier\":null}") |
---|
1313 | (jtm-lst (json:decode-json-from-string jtm-variant))) |
---|
1314 | (is (string= (jtm::get-item :VERSION jtm-lst) "1.1")) |
---|
1315 | (is-false (set-exclusive-or (jtm::get-item :ITEM--IDENTIFIERS jtm-lst) |
---|
1316 | (list "http://some.where/ii-1" |
---|
1317 | "[pref_1:ii-2]") :test #'string=)) |
---|
1318 | (is (eql (first (first (jtm::get-item :PREFIXES jtm-lst))) :XSD)) |
---|
1319 | (is (string= (rest (first (jtm::get-item :PREFIXES jtm-lst))) |
---|
1320 | "http://www.w3.org/2001/XMLSchema#")) |
---|
1321 | (is (eql (first (second (jtm::get-item :PREFIXES jtm-lst))) :PREF--1)) |
---|
1322 | (is (string= (rest (second (jtm::get-item :PREFIXES jtm-lst))) |
---|
1323 | "http://some.where/")))) |
---|
1324 | |
---|
1325 | |
---|
1326 | (test test-import-identifiers |
---|
1327 | "Tests the functions import-identifier-from-jtm-string and |
---|
1328 | import-identifiers-from-jtm-strings." |
---|
1329 | (with-fixture with-empty-db ("data_base") |
---|
1330 | (let* ((prefixes (list (list :pref "pref_1" :value "http://pref.org/") |
---|
1331 | (list :pref "pref_2" :value "http://pref.org#") |
---|
1332 | (list :pref "pref_3" :value "http://pref.org/app/"))) |
---|
1333 | (j-ii-1 "http://pref.org/ii-1") |
---|
1334 | (j-ii-2 "[pref_1:ii-2]") |
---|
1335 | (j-sl-1 "[pref_2:sl-1]") |
---|
1336 | (j-sl-2 "[pref_3:app_2/sl-2]") |
---|
1337 | (j-psi-1 "[pref_3:psi-1]") |
---|
1338 | (j-psi-2 "http://pref.org/psi-2") |
---|
1339 | (ii-1 (jtm::import-identifier-from-jtm-string j-ii-1 :prefixes prefixes)) |
---|
1340 | (sl-1 (jtm::import-identifier-from-jtm-string |
---|
1341 | j-sl-1 :prefixes prefixes :identifier-type-symbol 'SubjectLocatorC)) |
---|
1342 | (psi-1 (jtm::import-identifier-from-jtm-string |
---|
1343 | j-psi-1 :prefixes prefixes :identifier-type-symbol 'PersistentIdC)) |
---|
1344 | (psi-2 (jtm::import-identifier-from-jtm-string |
---|
1345 | j-psi-2 :prefixes prefixes :identifier-type-symbol 'PersistentIdC)) |
---|
1346 | (psis (jtm::import-identifiers-from-jtm-strings |
---|
1347 | (list j-psi-1 j-psi-2) :prefixes prefixes |
---|
1348 | :identifier-type-symbol 'PersistentIdC)) |
---|
1349 | (iis (jtm::import-identifiers-from-jtm-strings (list j-ii-1 j-ii-2) |
---|
1350 | :prefixes prefixes)) |
---|
1351 | (ii-2 (elephant:get-instance-by-value |
---|
1352 | 'd:ItemIdentifierC 'd:uri "http://pref.org/ii-2")) |
---|
1353 | (sls (jtm::import-identifiers-from-jtm-strings |
---|
1354 | (list j-sl-1 j-sl-2) :prefixes prefixes |
---|
1355 | :identifier-type-symbol 'SubjectLocatorC)) |
---|
1356 | (sl-2 (elephant:get-instance-by-value |
---|
1357 | 'd:SubjectLocatorC 'd:uri "http://pref.org/app/app_2/sl-2"))) |
---|
1358 | (signals exceptions:JTM-error |
---|
1359 | (jtm::import-identifier-from-jtm-string j-ii-2)) |
---|
1360 | (signals exceptions:duplicate-identifier-error |
---|
1361 | (jtm::import-identifier-from-jtm-string |
---|
1362 | j-ii-1 :identifier-type-symbol 'PersistentIdC)) |
---|
1363 | (signals exceptions:JTM-error |
---|
1364 | (jtm::import-identifiers-from-jtm-strings (list j-ii-2))) |
---|
1365 | (signals exceptions:duplicate-identifier-error |
---|
1366 | (jtm::import-identifiers-from-jtm-strings |
---|
1367 | (list j-ii-1) :identifier-type-symbol 'PersistentIdC)) |
---|
1368 | (is (eql (elephant:get-instance-by-value 'd:ItemIdentifierC 'd:uri j-ii-1) |
---|
1369 | ii-1)) |
---|
1370 | (is (find ii-2 iis)) |
---|
1371 | (is (eql (elephant:get-instance-by-value |
---|
1372 | 'd:SubjectLocatorC 'd:uri "http://pref.org#sl-1") |
---|
1373 | sl-1)) |
---|
1374 | (is (find sl-2 sls)) |
---|
1375 | (is (eql (elephant:get-instance-by-value |
---|
1376 | 'd:PersistentIdC 'd:uri "http://pref.org/app/psi-1") |
---|
1377 | psi-1)) |
---|
1378 | (is (eql (elephant:get-instance-by-value 'd:PersistentIdC 'd:uri j-psi-2) |
---|
1379 | psi-2)) |
---|
1380 | (is-false (set-exclusive-or psis (list psi-1 psi-2))) |
---|
1381 | (is-false (set-exclusive-or iis (list ii-1 ii-2))) |
---|
1382 | (is-false (set-exclusive-or sls (list sl-1 sl-2)))))) |
---|
1383 | |
---|
1384 | |
---|
1385 | (test test-import-variants |
---|
1386 | "Tests the functions import-variant-from-jtm-string and |
---|
1387 | import-characteristics-from-jtm-strings." |
---|
1388 | (with-fixture with-empty-db ("data_base") |
---|
1389 | (let* ((prefixes (list (list :pref "xsd" :value *xsd-ns*) |
---|
1390 | (list :pref "pref_1" :value "http://some.where/"))) |
---|
1391 | (jtm-var-1 (concat "{\"version\":\"1.1\",\"prefixes\":{\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_1\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":null,\"datatype\":" (json:encode-json-to-string *xml-string*) ",\"value\":\"var-1\",\"item_type\":\"variant\",\"parent\":[\"ii:[pref_1:ii-1]\"],\"scope\":[\"si:[pref_1:psi-1]\"],\"reifier\":null}")) |
---|
1392 | (jtm-var-2 (concat "{\"version\":\"1.0\",\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-3\"],\"datatype\":" (json:encode-json-to-string *xml-uri*) ",\"value\":\"http:\\/\\/any.uri\",\"item_type\":\"variant\",\"scope\":[\"sl:http:\\/\\/some.where\\/sl-1\"],\"reifier\":\"ii:http:\\/\\/some.where\\/ii-2\"}")) |
---|
1393 | (jtm-var-3 (concat "{\"version\":\"1.1\",\"prefixes\":{\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_1\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":null,\"datatype\":" (json:encode-json-to-string *xml-string*) ",\"value\":\"var-1\",\"item_type\":\"variant\",\"parent\":[\"ii:[pref_1:ii-10]\"],\"scope\":[\"si:[pref_1:psi-1]\"],\"reifier\":null}")) |
---|
1394 | (name-1 (make-construct |
---|
1395 | 'NameC :start-revision 100 |
---|
1396 | :item-identifiers |
---|
1397 | (list (make-construct 'ItemIdentifierC |
---|
1398 | :uri "http://some.where/ii-1")))) |
---|
1399 | (scope-1 (make-construct |
---|
1400 | 'TopicC :start-revision 100 |
---|
1401 | :psis |
---|
1402 | (list (make-construct 'PersistentIdC |
---|
1403 | :uri "http://some.where/psi-1")))) |
---|
1404 | (var-1 (jtm::import-variant-from-jtm-list |
---|
1405 | (json:decode-json-from-string jtm-var-1) nil :revision 100 |
---|
1406 | :prefixes prefixes)) |
---|
1407 | (scope-2 (make-construct |
---|
1408 | 'TopicC :start-revision 100 |
---|
1409 | :locators |
---|
1410 | (list (make-construct 'SubjectLocatorC |
---|
1411 | :uri "http://some.where/sl-1")))) |
---|
1412 | (reifier-2 (make-construct |
---|
1413 | 'TopicC :start-revision 100 |
---|
1414 | :item-identifiers |
---|
1415 | (list (make-construct 'ItemIdentifierC |
---|
1416 | :uri "http://some.where/ii-2")))) |
---|
1417 | (var-2 (jtm::import-variant-from-jtm-list |
---|
1418 | (json:decode-json-from-string jtm-var-2) name-1 :revision 100 |
---|
1419 | :prefixes prefixes)) |
---|
1420 | (vars (jtm::import-characteristics-from-jtm-lists |
---|
1421 | (list (json:decode-json-from-string jtm-var-1) |
---|
1422 | (json:decode-json-from-string jtm-var-2)) name-1 |
---|
1423 | #'jtm::import-variant-from-jtm-list :revision 100 |
---|
1424 | :prefixes prefixes))) |
---|
1425 | (is-true (d:find-item-by-revision var-1 100 name-1)) |
---|
1426 | (is-false (d:find-item-by-revision var-1 50 name-1)) |
---|
1427 | (is (eql (parent var-1 :revision 0) name-1)) |
---|
1428 | (is (eql (parent var-2 :revision 0) name-1)) |
---|
1429 | (is (string= (datatype var-1) *xml-string*)) |
---|
1430 | (is (string= (datatype var-2) *xml-uri*)) |
---|
1431 | (is (string= (charvalue var-1) "var-1")) |
---|
1432 | (is (string= (charvalue var-2) "http://any.uri")) |
---|
1433 | (is-false (d:item-identifiers var-1 :revision 0)) |
---|
1434 | (is-false (set-exclusive-or |
---|
1435 | (map 'list #'d:uri (d:item-identifiers var-2 :revision 0)) |
---|
1436 | (list "http://some.where/ii-3") :test #'string=)) |
---|
1437 | (is-false (reifier var-1 :revision 0)) |
---|
1438 | (is (eql (reifier var-2 :revision 0) reifier-2)) |
---|
1439 | (is-false (set-exclusive-or (themes var-1 :revision 0) (list scope-1))) |
---|
1440 | (is-false (set-exclusive-or (themes var-2 :revision 0) (list scope-2))) |
---|
1441 | (is-false (set-exclusive-or vars (list var-1 var-2))) |
---|
1442 | (signals exceptions:missing-reference-error |
---|
1443 | (jtm::import-variant-from-jtm-list |
---|
1444 | (json:decode-json-from-string jtm-var-3) nil :revision 100 |
---|
1445 | :prefixes prefixes)) |
---|
1446 | (signals exceptions:JTM-error |
---|
1447 | (jtm::import-variant-from-jtm-list |
---|
1448 | (json:decode-json-from-string jtm-var-1) name-1 :revision 100)) |
---|
1449 | (signals exceptions:JTM-error |
---|
1450 | (jtm::import-variant-from-jtm-list |
---|
1451 | (json:decode-json-from-string jtm-var-2) nil :revision 100)) |
---|
1452 | (signals exceptions:missing-reference-error |
---|
1453 | (jtm::import-characteristics-from-jtm-lists |
---|
1454 | (list (json:decode-json-from-string jtm-var-3)) nil |
---|
1455 | #'jtm::import-variant-from-jtm-list :revision 100 |
---|
1456 | :prefixes prefixes)) |
---|
1457 | (signals exceptions:JTM-error |
---|
1458 | (jtm::import-characteristics-from-jtm-lists |
---|
1459 | (list (json:decode-json-from-string jtm-var-1)) name-1 |
---|
1460 | #'jtm::import-variant-from-jtm-list :revision 100)) |
---|
1461 | (signals exceptions:JTM-error |
---|
1462 | (jtm::import-characteristics-from-jtm-lists |
---|
1463 | (list (json:decode-json-from-string jtm-var-2)) nil |
---|
1464 | #'jtm::import-variant-from-jtm-list :revision 100))))) |
---|
1465 | |
---|
1466 | |
---|
1467 | (test test-import-occurrences |
---|
1468 | "Tests the functions import-occurrence-from-jtm-string and |
---|
1469 | import-characteristics-from-jtm-strings." |
---|
1470 | (with-fixture with-empty-db ("data_base") |
---|
1471 | (let* ((prefixes (list (list :pref "xsd" :value *xsd-ns*) |
---|
1472 | (list :pref "pref_1" :value "http://some.where/"))) |
---|
1473 | (jtm-occ-1 (concat "{\"version\":\"1.1\",\"prefixes\":{\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_1\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":[\"[pref_1:ii-2]\"],\"datatype\":" (json:encode-json-to-string *xml-string* ) ",\"type\":\"sl:[pref_1:sl-1]\",\"value\":\"occ-1\",\"item_type\":\"occurrence\",\"parent\":[\"si:[pref_1:psi-1]\"],\"scope\":[\"si:[pref_1:psi-1]\"],\"reifier\":\"ii:[pref_1:ii-1]\"}")) |
---|
1474 | (jtm-occ-2 (concat "{\"version\":\"1.0\",\"item_identifiers\":null,\"datatype\":" (json:encode-json-to-string *xml-uri* ) ",\"type\":\"si:http:\\/\\/some.where\\/psi-1\",\"value\":\"http:\\/\\/any.uri\",\"item_type\":\"occurrence\",\"scope\":null,\"reifier\":null}")) |
---|
1475 | (jtm-occ-3 (concat "{\"version\":\"1.1\",\"prefixes\":{\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_1\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":[\"[pref_1:ii-2]\"],\"datatype\":" (json:encode-json-to-string *xml-string* ) ",\"type\":\"sl:[pref_1:sl-1]\",\"value\":\"occ-1\",\"item_type\":\"occurrence\",\"parent\":[\"si:[pref_1:psi-6]\"],\"scope\":[\"si:[pref_1:psi-1]\"],\"reifier\":\"ii:[pref_1:ii-1]\"}")) |
---|
1476 | (jtm-occ-4 (concat "{\"version\":\"1.0\",\"item_identifiers\":null,\"datatype\":" (json:encode-json-to-string *xml-uri* ) ",\"type\":null,\"value\":\"http:\\/\\/any.uri\",\"item_type\":\"occurrence\",\"scope\":null,\"reifier\":null}")) |
---|
1477 | (jtm-occ-5 (concat "{\"version\":\"1.0\",\"item_identifiers\":null,\"datatype\":" (json:encode-json-to-string *xml-uri* ) ",\"type\":\"si:http://any-uri/psi-10\",\"value\":\"http:\\/\\/any.uri\",\"item_type\":\"occurrence\",\"scope\":null,\"reifier\":null}")) |
---|
1478 | (type-1 (make-construct |
---|
1479 | 'TopicC :start-revision 0 |
---|
1480 | :locators |
---|
1481 | (list (make-construct 'SubjectLocatorC |
---|
1482 | :uri "http://some.where/sl-1")))) |
---|
1483 | (scope-1 (make-construct |
---|
1484 | 'TopicC :start-revision 0 |
---|
1485 | :psis |
---|
1486 | (list (make-construct 'PersistentIdC |
---|
1487 | :uri "http://some.where/psi-1")))) |
---|
1488 | (reifier-1 (make-construct |
---|
1489 | 'TopicC :start-revision 0 |
---|
1490 | :item-identifiers |
---|
1491 | (list (make-construct 'ItemIdentifierC |
---|
1492 | :uri "http://some.where/ii-1")))) |
---|
1493 | (parent-1 scope-1) |
---|
1494 | (type-2 scope-1) |
---|
1495 | (occ-1 (jtm::import-occurrence-from-jtm-list |
---|
1496 | (json:decode-json-from-string jtm-occ-1) nil :revision 100 |
---|
1497 | :prefixes prefixes)) |
---|
1498 | (occ-2 (jtm::import-occurrence-from-jtm-list |
---|
1499 | (json:decode-json-from-string jtm-occ-2) parent-1 :revision 100 |
---|
1500 | :prefixes prefixes)) |
---|
1501 | (occs (jtm::import-characteristics-from-jtm-lists |
---|
1502 | (list (json:decode-json-from-string jtm-occ-1) |
---|
1503 | (json:decode-json-from-string jtm-occ-2)) parent-1 |
---|
1504 | #'jtm::import-occurrence-from-jtm-list :revision 100 |
---|
1505 | :prefixes prefixes))) |
---|
1506 | (is-true (d:find-item-by-revision occ-1 100 parent-1)) |
---|
1507 | (is-false (d:find-item-by-revision occ-1 50 parent-1)) |
---|
1508 | (is (eql (parent occ-1 :revision 0) parent-1)) |
---|
1509 | (is (eql (parent occ-2 :revision 0) parent-1)) |
---|
1510 | (is (string= (datatype occ-1) *xml-string*)) |
---|
1511 | (is (string= (datatype occ-2) *xml-uri*)) |
---|
1512 | (is (string= (charvalue occ-1) "occ-1")) |
---|
1513 | (is (string= (charvalue occ-2) "http://any.uri")) |
---|
1514 | (is-false (set-exclusive-or |
---|
1515 | (map 'list #'d:uri (d:item-identifiers occ-1 :revision 0)) |
---|
1516 | (list "http://some.where/ii-2") :test #'string=)) |
---|
1517 | (is-false (d:item-identifiers occ-2 :revision 0)) |
---|
1518 | (is (eql (reifier occ-1 :revision 0) reifier-1)) |
---|
1519 | (is-false (reifier occ-2 :revision 0)) |
---|
1520 | (is-false (set-exclusive-or (themes occ-1 :revision 0) (list scope-1))) |
---|
1521 | (is-false (themes occ-2 :revision 0)) |
---|
1522 | (is (eql (instance-of occ-1 :revision 0) type-1)) |
---|
1523 | (is (eql (instance-of occ-2 :revision 0) type-2)) |
---|
1524 | (is-false (set-exclusive-or (list occ-1 occ-2) occs)) |
---|
1525 | (signals exceptions:missing-reference-error |
---|
1526 | (jtm::import-occurrence-from-jtm-list |
---|
1527 | (json:decode-json-from-string jtm-occ-5) parent-1 :revision 100 |
---|
1528 | :prefixes prefixes)) |
---|
1529 | (signals exceptions:JTM-error |
---|
1530 | (jtm::import-occurrence-from-jtm-list |
---|
1531 | (json:decode-json-from-string jtm-occ-4) parent-1 :revision 100 |
---|
1532 | :prefixes prefixes)) |
---|
1533 | (signals exceptions:missing-reference-error |
---|
1534 | (jtm::import-occurrence-from-jtm-list |
---|
1535 | (json:decode-json-from-string jtm-occ-3) nil :revision 100 |
---|
1536 | :prefixes prefixes)) |
---|
1537 | (signals exceptions:JTM-error |
---|
1538 | (jtm::import-occurrence-from-jtm-list |
---|
1539 | (json:decode-json-from-string jtm-occ-1) parent-1 :revision 100)) |
---|
1540 | (signals exceptions:JTM-error |
---|
1541 | (jtm::import-occurrence-from-jtm-list |
---|
1542 | (json:decode-json-from-string jtm-occ-2) nil :revision 100)) |
---|
1543 | (signals exceptions:missing-reference-error |
---|
1544 | (jtm::import-characteristics-from-jtm-lists |
---|
1545 | (list (json:decode-json-from-string jtm-occ-3)) nil |
---|
1546 | #'jtm::import-occurrence-from-jtm-list :revision 100 |
---|
1547 | :prefixes prefixes)) |
---|
1548 | (signals exceptions:JTM-error |
---|
1549 | (jtm::import-characteristics-from-jtm-lists |
---|
1550 | (list (json:decode-json-from-string jtm-occ-1)) parent-1 |
---|
1551 | #'jtm::import-occurrence-from-jtm-list :revision 100)) |
---|
1552 | (signals exceptions:JTM-error |
---|
1553 | (jtm::import-characteristics-from-jtm-lists |
---|
1554 | (list (json:decode-json-from-string jtm-occ-2)) nil |
---|
1555 | #'jtm::import-occurrence-from-jtm-list :revision 100))))) |
---|
1556 | |
---|
1557 | |
---|
1558 | (test test-import-names |
---|
1559 | "Tests the functions import-name-from-jtm-list and |
---|
1560 | import-characteristics-from-jtm-lists." |
---|
1561 | (with-fixture with-empty-db ("data_base") |
---|
1562 | (let* ((prefixes (list (list :pref "xsd" :value *xsd-ns*) |
---|
1563 | (list :pref "pref_1" :value *xsd-ns*) |
---|
1564 | (list :pref "pref_2" :value "http://some.where/"))) |
---|
1565 | (jtm-name-1 (concat "{\"version\":\"1.1\",\"prefixes\":{\"pref_1\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_2\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":[\"[pref_2:ii-2]\"],\"value\":\"name-1\",\"type\":\"sl:[pref_2:sl-1]\",\"item_type\":\"name\",\"parent\":[\"si:[pref_2:psi-1]\"],\"scope\":[\"si:[pref_2:psi-1]\"],\"variants\":[{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"value\":\"var-1\",\"scope\":[\"sl:[pref_2:sl-1]\"],\"reifier\":null},{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"value\":\"var-2\",\"scope\":[\"sl:[pref_2:sl-1]\"],\"reifier\":null}],\"reifier\":\"ii:[pref_2:ii-1]\"}")) |
---|
1566 | (jtm-name-2 "{\"version\":\"1.0\",\"item_identifiers\":null,\"value\":\"name-2\",\"type\":null,\"item_type\":\"name\",\"scope\":null,\"variants\":null,\"reifier\":null}") |
---|
1567 | (jtm-name-3 "{\"version\":\"1.0\",\"item_identifiers\":null,\"value\":\"name-2\",\"type\":null,\"item_type\":\"name\",\"parent\":[\"si:[pref_2:psi-10]\"],\"scope\":null,\"variants\":null,\"reifier\":null}") |
---|
1568 | (type-1 (make-construct |
---|
1569 | 'TopicC :start-revision 100 |
---|
1570 | :locators |
---|
1571 | (list (make-construct 'SubjectLocatorC |
---|
1572 | :uri "http://some.where/sl-1")))) |
---|
1573 | (type-2 (make-construct |
---|
1574 | 'TopicC :start-revision 100 |
---|
1575 | :psis |
---|
1576 | (list (make-construct 'PersistentIdC |
---|
1577 | :uri *topic-name-psi*)))) |
---|
1578 | (parent-1 (make-construct |
---|
1579 | 'TopicC :start-revision 100 |
---|
1580 | :psis |
---|
1581 | (list (make-construct 'PersistentIdC |
---|
1582 | :uri "http://some.where/psi-1")))) |
---|
1583 | (scope-1 parent-1) |
---|
1584 | (reifier-1 (make-construct |
---|
1585 | 'TopicC :start-revision 100 |
---|
1586 | :item-identifiers |
---|
1587 | (list (make-construct 'ItemIdentifierC |
---|
1588 | :uri "http://some.where/ii-1")))) |
---|
1589 | (name-1 (jtm::import-name-from-jtm-list |
---|
1590 | (json:decode-json-from-string jtm-name-1) nil :revision 100 |
---|
1591 | :prefixes prefixes)) |
---|
1592 | (name-2 (jtm::import-name-from-jtm-list |
---|
1593 | (json:decode-json-from-string jtm-name-2) parent-1 :revision 100 |
---|
1594 | :prefixes prefixes)) |
---|
1595 | (names (jtm::import-characteristics-from-jtm-lists |
---|
1596 | (list (json:decode-json-from-string jtm-name-1) |
---|
1597 | (json:decode-json-from-string jtm-name-2)) parent-1 |
---|
1598 | #'jtm::import-name-from-jtm-list :revision 100 |
---|
1599 | :prefixes prefixes))) |
---|
1600 | (is-true (d:find-item-by-revision name-1 100 parent-1)) |
---|
1601 | (is-false (d:find-item-by-revision name-1 50 parent-1)) |
---|
1602 | (is (eql (parent name-1 :revision 0) parent-1)) |
---|
1603 | (is (eql (parent name-2 :revision 0) parent-1)) |
---|
1604 | (is (string= (charvalue name-1) "name-1")) |
---|
1605 | (is (string= (charvalue name-2) "name-2")) |
---|
1606 | (is-false (set-exclusive-or |
---|
1607 | (map 'list #'d:uri (d:item-identifiers name-1 :revision 0)) |
---|
1608 | (list "http://some.where/ii-2") :test #'string=)) |
---|
1609 | (is-false (d:item-identifiers name-2 :revision 0)) |
---|
1610 | (is (eql (reifier name-1 :revision 0) reifier-1)) |
---|
1611 | (is-false (reifier name-2 :revision 0)) |
---|
1612 | (is-false (set-exclusive-or (themes name-1 :revision 0) (list scope-1))) |
---|
1613 | (is-false (themes name-2 :revision 0)) |
---|
1614 | (is (eql (instance-of name-1 :revision 0) type-1)) |
---|
1615 | (is (eql (instance-of name-2 :revision 0) type-2)) |
---|
1616 | (is-false (set-exclusive-or |
---|
1617 | (map 'list #'d:charvalue (variants name-1 :revision 0)) |
---|
1618 | (list "var-1" "var-2") :test #'string=)) |
---|
1619 | (is-false (variants name-2 :revision 0)) |
---|
1620 | (is-false (set-exclusive-or names (list name-1 name-2))) |
---|
1621 | (signals exceptions:missing-reference-error |
---|
1622 | (jtm::import-name-from-jtm-list |
---|
1623 | (json:decode-json-from-string jtm-name-3) nil :revision 100 |
---|
1624 | :prefixes prefixes)) |
---|
1625 | (signals exceptions:JTM-error |
---|
1626 | (jtm::import-name-from-jtm-list |
---|
1627 | (json:decode-json-from-string jtm-name-1) parent-1 :revision 100)) |
---|
1628 | (signals exceptions:JTM-error |
---|
1629 | (jtm::import-name-from-jtm-list |
---|
1630 | (json:decode-json-from-string jtm-name-2) nil :revision 100)) |
---|
1631 | (signals exceptions:missing-reference-error |
---|
1632 | (jtm::import-characteristics-from-jtm-lists |
---|
1633 | (list (json:decode-json-from-string jtm-name-3)) nil |
---|
1634 | #'jtm::import-name-from-jtm-list :revision 100 |
---|
1635 | :prefixes prefixes)) |
---|
1636 | (signals exceptions:JTM-error |
---|
1637 | (jtm::import-characteristics-from-jtm-lists |
---|
1638 | (list (json:decode-json-from-string jtm-name-1)) parent-1 |
---|
1639 | #'jtm::import-name-from-jtm-list :revision 100)) |
---|
1640 | (signals exceptions:JTM-error |
---|
1641 | (jtm::import-characteristics-from-jtm-lists |
---|
1642 | (list (json:decode-json-from-string jtm-name-2)) nil |
---|
1643 | #'jtm::import-name-from-jtm-list :revision 100))))) |
---|
1644 | |
---|
1645 | |
---|
1646 | (test test-make-instance-of-association |
---|
1647 | "Tests the function make-instance-of-association."1 |
---|
1648 | (with-fixture with-empty-db ("data_base") |
---|
1649 | (let* ((tt (make-construct 'TopicC :start-revision 100 |
---|
1650 | :psis |
---|
1651 | (list (make-construct 'PersistentIdC |
---|
1652 | :uri *type-psi*)))) |
---|
1653 | (it (make-construct 'TopicC :start-revision 100 |
---|
1654 | :psis |
---|
1655 | (list (make-construct 'PersistentIdC |
---|
1656 | :uri *instance-psi*)))) |
---|
1657 | (tit (make-construct 'TopicC :start-revision 100 |
---|
1658 | :psis |
---|
1659 | (list (make-construct 'PersistentIdC |
---|
1660 | :uri *type-instance-psi*)))) |
---|
1661 | (top-1 (make-construct |
---|
1662 | 'TopicC :start-revision 100 |
---|
1663 | :psis |
---|
1664 | (list (make-construct 'PersistentIdC |
---|
1665 | :uri "http://some.where/psi-1")))) |
---|
1666 | (top-2 (make-construct |
---|
1667 | 'TopicC :start-revision 100 |
---|
1668 | :locators |
---|
1669 | (list (make-construct 'SubjectLocatorC |
---|
1670 | :uri "http://some.where/sl-1")))) |
---|
1671 | (top-3 (make-construct |
---|
1672 | 'TopicC :start-revision 100 |
---|
1673 | :item-identifiers |
---|
1674 | (list (make-construct 'ItemIdentifierC |
---|
1675 | :uri "http://some.where/ii-1")))) |
---|
1676 | (tm (make-construct |
---|
1677 | 'TopicMapC :start-revision 100 |
---|
1678 | :item-identifiers |
---|
1679 | (list (make-construct 'ItemIdentifierC |
---|
1680 | :uri "http://some.where/tm-ii"))))) |
---|
1681 | (jtm::make-instance-of-association top-1 top-2 (list tm) :revision 100) |
---|
1682 | (is (= (length (player-in-roles top-1 :revision 0)) 1)) |
---|
1683 | (is (eql (instance-of (first (player-in-roles top-1 :revision 0)) :revision 0) |
---|
1684 | it)) |
---|
1685 | (let ((assoc (parent (first (player-in-roles top-1 :revision 0)) :revision 0))) |
---|
1686 | (is-true assoc) |
---|
1687 | (is (= (length (roles assoc :revision 0)) 2)) |
---|
1688 | (is (eql (instance-of assoc :revision 0) tit)) |
---|
1689 | (is-true (find tm (in-topicmaps assoc :revision 0))) |
---|
1690 | (is-true (find-if #'(lambda(role) |
---|
1691 | (and (eql (instance-of role :revision 0) tt) |
---|
1692 | (eql (player role :revision 0) top-2))) |
---|
1693 | (roles assoc :revision 0)))) |
---|
1694 | (is (= (length (player-in-roles top-2 :revision 0)) 1)) |
---|
1695 | (is-true (find tm (in-topicmaps tt :revision 0))) |
---|
1696 | (is-false (find tm (in-topicmaps tt :revision 50))) |
---|
1697 | (is-true (find tm (in-topicmaps it :revision 0))) |
---|
1698 | (is-true (find tm (in-topicmaps tit :revision 0))) |
---|
1699 | (jtm::make-instance-of-association top-2 top-3 (list tm) :revision 100) |
---|
1700 | (is (= (length (player-in-roles top-2 :revision 0)) 2)) |
---|
1701 | (is (= (length (player-in-roles top-3 :revision 0)) 1)) |
---|
1702 | (is (eql (instance-of (first (player-in-roles top-3 :revision 0)) :revision 0) |
---|
1703 | tt)) |
---|
1704 | (let ((assoc (parent (first (player-in-roles top-3 :revision 0)) :revision 0))) |
---|
1705 | (is-true assoc) |
---|
1706 | (is (= (length (roles assoc :revision 0)) 2)) |
---|
1707 | (is (eql (instance-of assoc :revision 0) tit)) |
---|
1708 | (is-true (find tm (in-topicmaps assoc :revision 0))) |
---|
1709 | (is-true (find-if #'(lambda(role) |
---|
1710 | (and (eql (instance-of role :revision 0) it) |
---|
1711 | (eql (player role :revision 0) top-2))) |
---|
1712 | (roles assoc :revision 0)))) |
---|
1713 | (signals exceptions:JTM-error |
---|
1714 | (jtm::make-instance-of-association top-1 top-3 nil :revision 100)) |
---|
1715 | (delete-psi |
---|
1716 | tt (elephant:get-instance-by-value 'PersistentIdc 'd:uri *type-psi*) |
---|
1717 | :revision 200) |
---|
1718 | (signals exceptions:missing-reference-error |
---|
1719 | (jtm::make-instance-of-association top-1 top-3 (list tm) :revision 200))))) |
---|
1720 | |
---|
1721 | |
---|
1722 | (test test-import-topics |
---|
1723 | "Tests the functions import-topic-stub-from-jtm-list, |
---|
1724 | and import-topic-stubs-from-jtm-lists." |
---|
1725 | (with-fixture with-empty-db ("data_base") |
---|
1726 | (let* ((prefixes (list (list :pref "xsd" :value *xsd-ns*) |
---|
1727 | (list :pref "pref_1" :value *xsd-ns*) |
---|
1728 | (list :pref "pref_2" :value "http://some.where/"))) |
---|
1729 | (j-top-1 "{\"version\":\"1.1\",\"prefixes\":{\"pref_1\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_2\":\"http:\\/\\/some.where\\/\"},\"subject_identifiers\":[\"[pref_2:psi-1]\",\"[pref_2:psi-2]\"],\"subject_locators\":[\"[pref_2:sl-2]\"],\"item_identifiers\":[\"[pref_2:ii-4]\"],\"instance_of\":null,\"item_type\":\"topic\",\"names\":[{\"item_identifiers\":null,\"value\":\"name-1\",\"type\":null,\"scope\":null,\"variants\":null,\"reifier\":null},{\"item_identifiers\":null,\"value\":\"name-2\",\"type\":null,\"scope\":[\"sl:[pref_2:sl-1]\"],\"variants\":[{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"value\":\"var-1\",\"scope\":[\"ii:[pref_2:ii-1]\"],\"reifier\":null}],\"reifier\":null}],\"occurrences\":[{\"item_identifiers\":[\"[pref_2:ii-2]\"],\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"type\":\"sl:[pref_2:sl-1]\",\"value\":\"occ-1\",\"scope\":[\"si:[pref_2:psi-1]\"],\"reifier\":\"ii:[pref_2:ii-1]\"},{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#anyURI\",\"type\":\"si:[pref_2:psi-1]\",\"value\":\"http:\\/\\/any.uri\",\"scope\":null,\"reifier\":null}]}") |
---|
1730 | (j-top-2 "{\"version\":\"1.0\",\"subject_identifiers\":[\"http:\\/\\/some.where\\/psi-1\",\"http:\\/\\/some.where\\/psi-2\"],\"subject_locators\":[\"http:\\/\\/some.where\\/sl-2\"],\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-4\"],\"item_type\":\"topic\",\"parent\":[\"ii:http:\\/\\/some.where\\/ii-3\"],\"names\":[{\"item_identifiers\":null,\"value\":\"name-1\",\"type\":null,\"scope\":null,\"variants\":null,\"reifier\":null},{\"item_identifiers\":null,\"value\":\"name-2\",\"type\":null,\"scope\":[\"sl:http:\\/\\/some.where\\/sl-1\"],\"variants\":[{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"value\":\"var-1\",\"scope\":[\"ii:http:\\/\\/some.where\\/ii-1\"],\"reifier\":null}],\"reifier\":null}],\"occurrences\":[{\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-2\"],\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"type\":\"sl:http:\\/\\/some.where\\/sl-1\",\"value\":\"occ-1\",\"scope\":[\"si:http:\\/\\/some.where\\/psi-1\"],\"reifier\":\"ii:http:\\/\\/some.where\\/ii-1\"},{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#anyURI\",\"type\":\"si:http:\\/\\/some.where\\/psi-1\",\"value\":\"http:\\/\\/any.uri\",\"scope\":null,\"reifier\":null}]}") |
---|
1731 | (j-top-3 "{\"subject_identifiers\":[\"http:\\/\\/some.where\\/tmsparql\\/author\"],\"subject_locators\":null,\"item_identifiers\":null,\"names\":null,\"occurrences\":null}") |
---|
1732 | (j-top-4 "{\"subject_identifiers\":[\"http:\\/\\/some.where\\/tmsparql\\/first-name\"],\"subject_locators\":null,\"item_identifiers\":null,\"names\":null,\"occurrences\":null}") |
---|
1733 | (j-top-5 "{\"subject_identifiers\":null,\"subject_locators\":null,\"item_identifiers\":[\"http:\\/\\/some.where\\/ii\\/goethe-name-reifier\"],\"names\":null,\"occurrences\":null}") |
---|
1734 | (tm-1 (make-construct |
---|
1735 | 'TopicMapC :start-revision 100 |
---|
1736 | :item-identifiers |
---|
1737 | (list (make-construct 'ItemIdentifierC |
---|
1738 | :uri "http://some.where/tm-1")))) |
---|
1739 | (tm-2 (make-construct |
---|
1740 | 'TopicMapC :start-revision 100 |
---|
1741 | :item-identifiers |
---|
1742 | (list (make-construct 'ItemIdentifierC |
---|
1743 | :uri "http://some.where/tm-2"))))) |
---|
1744 | (is-false (elephant:get-instances-by-class 'd:TopicC)) |
---|
1745 | (is (= (length (elephant:get-instances-by-class 'ItemIdentifierC)) 2)) |
---|
1746 | (let ((top-1 (jtm::import-topic-stub-from-jtm-list |
---|
1747 | (json:decode-json-from-string j-top-1) |
---|
1748 | (list tm-1 tm-2) :revision 100 :prefixes prefixes))) |
---|
1749 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 1)) |
---|
1750 | (is-false (elephant:get-instances-by-class 'NameC)) |
---|
1751 | (is-false (elephant:get-instances-by-class 'VariantC)) |
---|
1752 | (is-false (elephant:get-instances-by-class 'RoleC)) |
---|
1753 | (is-false (elephant:get-instances-by-class 'AssociationC)) |
---|
1754 | (is-false (elephant:get-instances-by-class 'OccurrenceC)) |
---|
1755 | (is (= (length (elephant:get-instances-by-class 'PersistentIdC)) 2)) |
---|
1756 | (is (= (length (elephant:get-instances-by-class 'ItemIdentifierC)) 3)) |
---|
1757 | (is (= (length (elephant:get-instances-by-class 'SubjectLocatorC)) 1)) |
---|
1758 | (is-false (set-exclusive-or (list "http://some.where/psi-1" |
---|
1759 | "http://some.where/psi-2") |
---|
1760 | (map 'list #'d:uri (psis top-1 :revision 0)) |
---|
1761 | :test #'string=)) |
---|
1762 | (is-false (set-exclusive-or |
---|
1763 | (list "http://some.where/sl-2") |
---|
1764 | (map 'list #'d:uri (locators top-1 :revision 0)) |
---|
1765 | :test #'string=)) |
---|
1766 | (is-false (set-exclusive-or |
---|
1767 | (list "http://some.where/ii-4") |
---|
1768 | (map 'list #'d:uri (item-identifiers top-1 :revision 0)) |
---|
1769 | :test #'string=)) |
---|
1770 | (is-true (find tm-1 (in-topicmaps top-1 :revision 0))) |
---|
1771 | (is-true (find tm-2 (in-topicmaps top-1 :revision 0)))) |
---|
1772 | (let ((top-2 (jtm::import-topic-stub-from-jtm-list |
---|
1773 | (json:decode-json-from-string j-top-2) |
---|
1774 | (list tm-1 tm-2) :revision 200))) |
---|
1775 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 1)) |
---|
1776 | (is-false (elephant:get-instances-by-class 'NameC)) |
---|
1777 | (is-false (elephant:get-instances-by-class 'VariantC)) |
---|
1778 | (is-false (elephant:get-instances-by-class 'RoleC)) |
---|
1779 | (is-false (elephant:get-instances-by-class 'AssociationC)) |
---|
1780 | (is-false (elephant:get-instances-by-class 'OccurrenceC)) |
---|
1781 | (is (= (length (elephant:get-instances-by-class 'PersistentIdC)) 2)) |
---|
1782 | (is (= (length (elephant:get-instances-by-class 'ItemIdentifierC)) 3)) |
---|
1783 | (is (= (length (elephant:get-instances-by-class 'SubjectLocatorC)) 1)) |
---|
1784 | (is-false (set-exclusive-or (list "http://some.where/psi-1" |
---|
1785 | "http://some.where/psi-2") |
---|
1786 | (map 'list #'d:uri (psis top-2 :revision 200)) |
---|
1787 | :test #'string=)) |
---|
1788 | (is-false (set-exclusive-or |
---|
1789 | (list "http://some.where/sl-2") |
---|
1790 | (map 'list #'d:uri (locators top-2 :revision 200)) |
---|
1791 | :test #'string=)) |
---|
1792 | (is-false (set-exclusive-or |
---|
1793 | (list "http://some.where/ii-4") |
---|
1794 | (map 'list #'d:uri (item-identifiers top-2 :revision 200)) |
---|
1795 | :test #'string=)) |
---|
1796 | (is-true (find tm-1 (in-topicmaps top-2 :revision 200))) |
---|
1797 | (is-true (find tm-2 (in-topicmaps top-2 :revision 200)))) |
---|
1798 | (let ((tops-3-4-5 |
---|
1799 | (jtm::import-topic-stubs-from-jtm-lists |
---|
1800 | (list (json:decode-json-from-string j-top-3) |
---|
1801 | (json:decode-json-from-string j-top-4) |
---|
1802 | (json:decode-json-from-string j-top-5)) |
---|
1803 | (list tm-1 tm-2) :revision 200))) |
---|
1804 | (is (= (length tops-3-4-5) 3)) |
---|
1805 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 4)) |
---|
1806 | (is (= (length (elephant:get-instances-by-class 'PersistentIdC)) 4)) |
---|
1807 | (is (= (length (elephant:get-instances-by-class 'ItemIdentifierC)) 4)) |
---|
1808 | (is (= (length (elephant:get-instances-by-class 'SubjectLocatorC)) 1)) |
---|
1809 | (is-false (elephant:get-instances-by-class 'NameC)) |
---|
1810 | (is-false (elephant:get-instances-by-class 'VariantC)) |
---|
1811 | (is-false (elephant:get-instances-by-class 'RoleC)) |
---|
1812 | (is-false (elephant:get-instances-by-class 'AssociationC)) |
---|
1813 | (is-false (elephant:get-instances-by-class 'OccurrenceC)) |
---|
1814 | (is-true (find-if #'(lambda(top) |
---|
1815 | (and (= (length (psis top :revision 0)) 1) |
---|
1816 | (not (item-identifiers top :revision 0)) |
---|
1817 | (not (locators top :revision 0)) |
---|
1818 | (string= (uri (first (psis top :revision 0))) |
---|
1819 | "http://some.where/tmsparql/author"))) |
---|
1820 | tops-3-4-5)) |
---|
1821 | (is-true |
---|
1822 | (find-if #'(lambda(top) |
---|
1823 | (and (= (length (psis top :revision 0)) 1) |
---|
1824 | (not (item-identifiers top :revision 0)) |
---|
1825 | (not (locators top :revision 0)) |
---|
1826 | (string= (uri (first (psis top :revision 0))) |
---|
1827 | "http://some.where/tmsparql/first-name"))) |
---|
1828 | tops-3-4-5)) |
---|
1829 | (is-true |
---|
1830 | (find-if #'(lambda(top) |
---|
1831 | (and (= (length (item-identifiers top :revision 0)) 1) |
---|
1832 | (not (psis top :revision 0)) |
---|
1833 | (not (locators top :revision 0)) |
---|
1834 | (string= (uri (first (item-identifiers top :revision 0))) |
---|
1835 | "http://some.where/ii/goethe-name-reifier"))) |
---|
1836 | tops-3-4-5)) |
---|
1837 | (signals exceptions:jtm-error |
---|
1838 | (jtm::import-topic-stub-from-jtm-list |
---|
1839 | (json:decode-json-from-string j-top-1) |
---|
1840 | (list tm-1 tm-2) :revision 200)) |
---|
1841 | (signals exceptions:missing-reference-error |
---|
1842 | (jtm::import-topic-stub-from-jtm-list |
---|
1843 | (json:decode-json-from-string j-top-2) |
---|
1844 | nil :revision 200)) |
---|
1845 | (signals exceptions:jtm-error |
---|
1846 | (jtm::import-topic-stubs-from-jtm-lists |
---|
1847 | (list (json:decode-json-from-string j-top-1)) |
---|
1848 | (list tm-1 tm-2) :revision 200)) |
---|
1849 | (signals exceptions:missing-reference-error |
---|
1850 | (jtm::import-topic-stubs-from-jtm-lists |
---|
1851 | (list (json:decode-json-from-string j-top-2)) |
---|
1852 | nil :revision 200)))))) |
---|
1853 | |
---|
1854 | |
---|
1855 | (test test-merge-topics |
---|
1856 | "Tests the functions import-topic-stub-from-jtm-list, |
---|
1857 | and import-topic-stubs-from-jtm-lists." |
---|
1858 | (with-fixture with-empty-db ("data_base") |
---|
1859 | (let* ((prefixes (list (list :pref "xsd" :value *xsd-ns*) |
---|
1860 | (list :pref "pref_1" :value *xsd-ns*) |
---|
1861 | (list :pref "pref_2" :value "http://some.where/"))) |
---|
1862 | (j-top-1 "{\"version\":\"1.1\",\"prefixes\":{\"pref_1\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_2\":\"http:\\/\\/some.where\\/\"},\"subject_identifiers\":[\"[pref_2:psi-1]\",\"[pref_2:psi-2]\"],\"subject_locators\":[\"[pref_2:sl-2]\"],\"item_identifiers\":[\"[pref_2:ii-4]\"],\"instance_of\":[\"ii:[pref_2:ii-1]\"],\"item_type\":\"topic\",\"names\":[{\"item_identifiers\":null,\"value\":\"name-1\",\"type\":null,\"scope\":null,\"variants\":null,\"reifier\":null},{\"item_identifiers\":null,\"value\":\"name-2\",\"type\":null,\"scope\":[\"sl:[pref_2:sl-1]\"],\"variants\":[{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"value\":\"var-1\",\"scope\":[\"ii:[pref_2:ii-1]\"],\"reifier\":null}],\"reifier\":null}],\"occurrences\":[{\"item_identifiers\":[\"[pref_2:ii-2]\"],\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"type\":\"sl:[pref_2:sl-1]\",\"value\":\"occ-1\",\"scope\":[\"si:[pref_2:psi-1]\"],\"reifier\":\"ii:[pref_2:ii-1]\"},{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#anyURI\",\"type\":\"si:[pref_2:psi-1]\",\"value\":\"http:\\/\\/any.uri\",\"scope\":null,\"reifier\":null}]}") |
---|
1863 | (j-top-2 "{\"version\":\"1.0\",\"subject_identifiers\":[\"http:\\/\\/some.where\\/psi-1\",\"http:\\/\\/some.where\\/psi-2\"],\"subject_locators\":[\"http:\\/\\/some.where\\/sl-2\"],\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-4\"],\"item_type\":\"topic\",\"parent\":[\"ii:http:\\/\\/some.where\\/ii-3\"],\"names\":[{\"item_identifiers\":null,\"value\":\"name-1\",\"type\":null,\"scope\":null,\"variants\":null,\"reifier\":null},{\"item_identifiers\":null,\"value\":\"name-2\",\"type\":null,\"scope\":[\"sl:http:\\/\\/some.where\\/sl-1\"],\"variants\":[{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"value\":\"var-1\",\"scope\":[\"ii:http:\\/\\/some.where\\/ii-1\"],\"reifier\":null}],\"reifier\":null}],\"occurrences\":[{\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-2\"],\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"type\":\"sl:http:\\/\\/some.where\\/sl-1\",\"value\":\"occ-1\",\"scope\":[\"si:http:\\/\\/some.where\\/psi-1\"],\"reifier\":\"ii:http:\\/\\/some.where\\/ii-1\"},{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#anyURI\",\"type\":\"si:http:\\/\\/some.where\\/psi-1\",\"value\":\"http:\\/\\/any.uri\",\"scope\":null,\"reifier\":null}]}") |
---|
1864 | (j-top-3 "{\"subject_identifiers\":[\"http:\\/\\/some.where\\/tmsparql\\/author\"],\"subject_locators\":null,\"item_identifiers\":null,\"names\":null,\"occurrences\":null}") |
---|
1865 | (j-top-4 "{\"subject_identifiers\":null,\"subject_locators\":[\"http:\\/\\/some.where\\/sl-1\"],\"item_identifiers\":null,\"names\":null,\"occurrences\":null}") |
---|
1866 | (j-top-5 "{\"subject_identifiers\":null,\"subject_locators\":null,\"item_identifiers\":[\"http:\\/\\/some.where\\/ii-1\"],\"names\":null,\"occurrences\":null}") |
---|
1867 | (tm-1 (make-construct |
---|
1868 | 'TopicMapC :start-revision 100 |
---|
1869 | :item-identifiers |
---|
1870 | (list (make-construct 'ItemIdentifierC |
---|
1871 | :uri "http://some.where/tm-1")))) |
---|
1872 | (topic-name (make-construct |
---|
1873 | 'TopicC :start-revision 100 |
---|
1874 | :psis |
---|
1875 | (list (make-construct 'PersistentIdC |
---|
1876 | :uri *topic-name-psi*)))) |
---|
1877 | (tm-2 (make-construct |
---|
1878 | 'TopicMapC :start-revision 100 |
---|
1879 | :item-identifiers |
---|
1880 | (list (make-construct 'ItemIdentifierC |
---|
1881 | :uri "http://some.where/tm-2")))) |
---|
1882 | (tops (jtm::import-topic-stubs-from-jtm-lists |
---|
1883 | (list (json:decode-json-from-string j-top-1) |
---|
1884 | (json:decode-json-from-string j-top-2) |
---|
1885 | (json:decode-json-from-string j-top-3) |
---|
1886 | (json:decode-json-from-string j-top-4) |
---|
1887 | (json:decode-json-from-string j-top-5)) |
---|
1888 | (list tm-1 tm-2) :revision 100 :prefixes prefixes))) |
---|
1889 | (is (= (length tops) 5)) |
---|
1890 | (is (= (length (remove-duplicates tops)) 4)) |
---|
1891 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 5)) |
---|
1892 | (is (= (length (elephant:get-instances-by-class 'PersistentIdC)) 4)) |
---|
1893 | (is (= (length (elephant:get-instances-by-class 'ItemIdentifierC)) 4)) |
---|
1894 | (is (= (length (elephant:get-instances-by-class 'SubjectLocatorC)) 2)) |
---|
1895 | (is-false (elephant:get-instances-by-class 'NameC)) |
---|
1896 | (is-false (elephant:get-instances-by-class 'VariantC)) |
---|
1897 | (is-false (elephant:get-instances-by-class 'RoleC)) |
---|
1898 | (is-false (elephant:get-instances-by-class 'AssociationC)) |
---|
1899 | (is-false (elephant:get-instances-by-class 'OccurrenceC)) |
---|
1900 | (signals exceptions:missing-reference-error ;missing topics for |
---|
1901 | (jtm::merge-topic-from-jtm-list ;type-instance-associations |
---|
1902 | (json:decode-json-from-string j-top-1) |
---|
1903 | (list tm-1 tm-2) :revision 100 :prefixes prefixes)) |
---|
1904 | (make-construct 'TopicC :start-revision 100 |
---|
1905 | :psis |
---|
1906 | (list (make-construct 'PersistentIdC |
---|
1907 | :uri *type-psi*))) |
---|
1908 | (make-construct 'TopicC :start-revision 100 |
---|
1909 | :psis |
---|
1910 | (list (make-construct 'PersistentIdC |
---|
1911 | :uri *instance-psi*))) |
---|
1912 | (make-construct 'TopicC :start-revision 100 |
---|
1913 | :psis |
---|
1914 | (list (make-construct 'PersistentIdC |
---|
1915 | :uri *type-instance-psi*))) |
---|
1916 | (let ((top-1 (jtm::merge-topic-from-jtm-list |
---|
1917 | (json:decode-json-from-string j-top-1) |
---|
1918 | (list tm-1 tm-2) :revision 100 :prefixes prefixes)) |
---|
1919 | (top-2 (jtm::merge-topic-from-jtm-list |
---|
1920 | (json:decode-json-from-string j-top-2) |
---|
1921 | (list tm-1 tm-2) :revision 100 :prefixes prefixes))) |
---|
1922 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 8)) |
---|
1923 | (is (= (length (elephant:get-instances-by-class 'PersistentIdC)) 7)) |
---|
1924 | (is (= (length (elephant:get-instances-by-class 'ItemIdentifierC)) 5)) |
---|
1925 | (is (= (length (elephant:get-instances-by-class 'SubjectLocatorC)) 2)) |
---|
1926 | (is (= (length (elephant:get-instances-by-class 'NameC)) 2)) |
---|
1927 | (is (= (length (elephant:get-instances-by-class 'VariantC)) 1)) |
---|
1928 | (is (= (length (elephant:get-instances-by-class 'RoleC)) 2)) |
---|
1929 | (is (= (length (elephant:get-instances-by-class 'AssociationC)) 1)) |
---|
1930 | (is (= (length (elephant:get-instances-by-class 'OccurrenceC)) 2)) |
---|
1931 | (is (eql top-1 top-2)) |
---|
1932 | (is (= (length (names top-1 :revision 0)) 2)) |
---|
1933 | (is-true (find-if #'(lambda(name) |
---|
1934 | (and (string= (charvalue name) "name-1") |
---|
1935 | (eql (instance-of name :revision 0) |
---|
1936 | topic-name) |
---|
1937 | (not (themes name :revision 0)) |
---|
1938 | (not (variants name :revision 0)) |
---|
1939 | (not (reifier name :revision 0)) |
---|
1940 | (not (item-identifiers name :revision 0)))) |
---|
1941 | (names top-1 :revision 0))) |
---|
1942 | (is-true |
---|
1943 | (find-if #'(lambda(name) |
---|
1944 | (and (string= (charvalue name) "name-2") |
---|
1945 | (eql (instance-of name :revision 0) |
---|
1946 | topic-name) |
---|
1947 | (= (length (themes name :revision 0)) 1) |
---|
1948 | (= (length (locators (first (themes name :revision 0)) |
---|
1949 | :revision 0)) 1) |
---|
1950 | (string= |
---|
1951 | (uri (first (locators (first (themes name :revision 0)) |
---|
1952 | :revision 0))) |
---|
1953 | "http://some.where/sl-1") |
---|
1954 | (= (length (variants name :revision 0)) 1) |
---|
1955 | (not (reifier name :revision 0)) |
---|
1956 | (not (item-identifiers name :revision 0)))) |
---|
1957 | (names top-1 :revision 0))) |
---|
1958 | (is-true |
---|
1959 | (find-if #'(lambda(occ) |
---|
1960 | (and (string= (charvalue occ) "occ-1") |
---|
1961 | (string= (datatype occ) *xml-string*) |
---|
1962 | (instance-of occ :revision 0) |
---|
1963 | (= (length (locators (instance-of occ :revision 0) |
---|
1964 | :revision 0)) 1) |
---|
1965 | (string= |
---|
1966 | (uri (first (locators (instance-of occ :revision 0) |
---|
1967 | :revision 0))) |
---|
1968 | "http://some.where/sl-1") |
---|
1969 | (= (length (themes occ :revision 0)) 1) |
---|
1970 | (= (length (psis (first (themes occ :revision 0)) |
---|
1971 | :revision 0)) 2) |
---|
1972 | (or (string= |
---|
1973 | (uri (first (psis (first (themes occ :revision 0)) |
---|
1974 | :revision 0))) |
---|
1975 | "http://some.where/psi-1") |
---|
1976 | (string= |
---|
1977 | (uri (second (psis (first (themes occ :revision 0)) |
---|
1978 | :revision 0))) |
---|
1979 | "http://some.where/psi-1")) |
---|
1980 | (reifier occ :revision 0) |
---|
1981 | (= (length (item-identifiers occ :revision 0)) 1) |
---|
1982 | (string= (uri (first (item-identifiers occ :revision 0))) |
---|
1983 | "http://some.where/ii-2"))) |
---|
1984 | (occurrences top-1 :revision 0))) |
---|
1985 | (is-true |
---|
1986 | (find-if #'(lambda(occ) |
---|
1987 | (and (string= (charvalue occ) "http://any.uri") |
---|
1988 | (string= (datatype occ) *xml-uri*) |
---|
1989 | (instance-of occ :revision 0) |
---|
1990 | (or (string= |
---|
1991 | (uri (first (psis (instance-of occ :revision 0) |
---|
1992 | :revision 0))) |
---|
1993 | "http://some.where/psi-1") |
---|
1994 | (string= |
---|
1995 | (uri (second (psis (instance-of occ :revision 0) |
---|
1996 | :revision 0))) |
---|
1997 | "http://some.where/psi-1")) |
---|
1998 | (not (themes occ :revision 0)) |
---|
1999 | (not (reifier occ :revision 0)) |
---|
2000 | (not (item-identifiers occ :revision 0)))) |
---|
2001 | (occurrences top-1 :revision 0)))) |
---|
2002 | (let ((tops (jtm::merge-topics-from-jtm-lists |
---|
2003 | (list (json:decode-json-from-string j-top-1) |
---|
2004 | (json:decode-json-from-string j-top-2) |
---|
2005 | (json:decode-json-from-string j-top-3) |
---|
2006 | (json:decode-json-from-string j-top-4) |
---|
2007 | (json:decode-json-from-string j-top-5)) |
---|
2008 | (list tm-1 tm-2) :revision 200 :prefixes prefixes))) |
---|
2009 | (is (= (length (remove-duplicates tops)) 4)) |
---|
2010 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 8)) |
---|
2011 | (is (= (length (elephant:get-instances-by-class 'PersistentIdC)) 7)) |
---|
2012 | (is (= (length (elephant:get-instances-by-class 'ItemIdentifierC)) 5)) |
---|
2013 | (is (= (length (elephant:get-instances-by-class 'SubjectLocatorC)) 2)) |
---|
2014 | (is (= (length (elephant:get-instances-by-class 'NameC)) 2)) |
---|
2015 | (is (= (length (elephant:get-instances-by-class 'VariantC)) 1)) |
---|
2016 | (is (= (length (elephant:get-instances-by-class 'RoleC)) 2)) |
---|
2017 | (is (= (length (elephant:get-instances-by-class 'AssociationC)) 1)) |
---|
2018 | (is (= (length (elephant:get-instances-by-class 'OccurrenceC)) 2))) |
---|
2019 | (signals exceptions:jtm-error |
---|
2020 | (jtm::merge-topic-from-jtm-list |
---|
2021 | (json:decode-json-from-string j-top-1) |
---|
2022 | (list tm-1 tm-2) :revision 200)) |
---|
2023 | (signals exceptions:jtm-error |
---|
2024 | (jtm::merge-topic-from-jtm-list |
---|
2025 | (json:decode-json-from-string j-top-1) |
---|
2026 | (list tm-1 tm-2) :revision 200 :prefixes prefixes :instance-of-p nil)) |
---|
2027 | (signals exceptions:JTM-error |
---|
2028 | (jtm::merge-topic-from-jtm-list |
---|
2029 | (json:decode-json-from-string j-top-1) |
---|
2030 | nil :revision 200 :prefixes prefixes)) |
---|
2031 | (signals exceptions:jtm-error |
---|
2032 | (jtm::merge-topics-from-jtm-lists |
---|
2033 | (list (json:decode-json-from-string j-top-1)) |
---|
2034 | (list tm-1 tm-2) :revision 200)) |
---|
2035 | (signals exceptions:jtm-error |
---|
2036 | (jtm::merge-topics-from-jtm-lists |
---|
2037 | (list (json:decode-json-from-string j-top-1)) |
---|
2038 | (list tm-1 tm-2) :revision 200 :prefixes prefixes :instance-of-p nil)) |
---|
2039 | (signals exceptions:JTM-error |
---|
2040 | (jtm::merge-topics-from-jtm-lists |
---|
2041 | (list (json:decode-json-from-string j-top-1)) |
---|
2042 | nil :revision 200 :prefixes prefixes))))) |
---|
2043 | |
---|
2044 | |
---|
2045 | (test test-import-associations |
---|
2046 | "Tests the functions import-association-from-jtm-list." |
---|
2047 | (with-fixture with-empty-db ("data_base") |
---|
2048 | (let* ((prefixes |
---|
2049 | (list (list :pref "pref_3" |
---|
2050 | :value "http://psi.topicmaps.org/iso13250/model/") |
---|
2051 | (list :pref "xsd" :value *xsd-ns*) |
---|
2052 | (list :pref "pref_1" :value *xsd-ns*) |
---|
2053 | (list :pref "pref_2" :value "http://some.where/"))) |
---|
2054 | (j-assoc-1 "{\"item_identifiers\":[\"http:\\/\\/some.where\\/ii\\/association\"],\"type\":\"si:http:\\/\\/some.where\\/tmsparql\\/written-by\",\"reifier\":\"ii:http:\\/\\/some.where\\/ii\\/association-reifier\",\"scope\":null,\"roles\":[{\"item_identifiers\":null,\"type\":\"si:http:\\/\\/some.where\\/tmsparql\\/writer\",\"reifier\":\"ii:http:\\/\\/some.where\\/ii\\/role-reifier\",\"player\":\"si:http:\\/\\/some.where\\/tmsparql\\/author\\/goethe\"},{\"item_identifiers\":[\"http:\\/\\/some.where\\/ii\\/role-2\"],\"type\":\"si:http:\\/\\/some.where\\/tmsparql\\/written\",\"reifier\":null,\"player\":\"si:http:\\/\\/some.where\\/psis\\/poem\\/zauberlehrling\"}]}") |
---|
2055 | (j-assoc-2 "{\"version\":\"1.1\",\"prefixes\":{\"pref_1\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_2\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":null,\"type\":\"si:[pref_3:type-instance]\",\"reifier\":null,\"scope\":[\"si:[pref_2:my-scope]\"],\"roles\":[{\"item_identifiers\":null,\"type\":\"si:[pref_3:type]\",\"reifier\":null,\"player\":\"si:[pref_2:tmsparql\\/author]\"},{\"item_identifiers\":null,\"type\":\"si:[pref_3:instance]\",\"reifier\":null,\"player\":\"si:[pref_2:tmsparql\\/author\\/goethe]\"}]}") |
---|
2056 | (goethe (make-construct |
---|
2057 | 'TopicC :start-revision 100 |
---|
2058 | :psis |
---|
2059 | (list (make-construct |
---|
2060 | 'PersistentIdC |
---|
2061 | :uri "http://some.where/tmsparql/author/goethe")))) |
---|
2062 | (zauberlehrling (make-construct |
---|
2063 | 'TopicC :start-revision 100 |
---|
2064 | :psis |
---|
2065 | (list (make-construct |
---|
2066 | 'PersistentIdC |
---|
2067 | :uri "http://some.where/psis/poem/zauberlehrling")))) |
---|
2068 | (author (make-construct |
---|
2069 | 'TopicC :start-revision 100 |
---|
2070 | :psis |
---|
2071 | (list (make-construct |
---|
2072 | 'PersistentIdC |
---|
2073 | :uri "http://some.where/tmsparql/author")))) |
---|
2074 | (tt (make-construct |
---|
2075 | 'TopicC :start-revision 100 |
---|
2076 | :psis (list (make-construct 'PersistentIdC |
---|
2077 | :uri *type-psi*)))) |
---|
2078 | (it (make-construct |
---|
2079 | 'TopicC :start-revision 100 |
---|
2080 | :psis (list (make-construct 'PersistentIdC |
---|
2081 | :uri *instance-psi*)))) |
---|
2082 | (tit (make-construct |
---|
2083 | 'TopicC :start-revision 100 |
---|
2084 | :psis (list (make-construct 'PersistentIdC |
---|
2085 | :uri *type-instance-psi*)))) |
---|
2086 | (written-by (make-construct |
---|
2087 | 'TopicC :start-revision 100 |
---|
2088 | :psis |
---|
2089 | (list (make-construct |
---|
2090 | 'PersistentIdC |
---|
2091 | :uri "http://some.where/tmsparql/written-by")))) |
---|
2092 | (writer (make-construct |
---|
2093 | 'TopicC :start-revision 100 |
---|
2094 | :psis |
---|
2095 | (list (make-construct |
---|
2096 | 'PersistentIdC |
---|
2097 | :uri "http://some.where/tmsparql/writer")))) |
---|
2098 | (written (make-construct |
---|
2099 | 'TopicC :start-revision 100 |
---|
2100 | :psis |
---|
2101 | (list (make-construct |
---|
2102 | 'PersistentIdC |
---|
2103 | :uri "http://some.where/tmsparql/written")))) |
---|
2104 | (reifier-assoc-1 (make-construct |
---|
2105 | 'TopicC :start-revision 100 |
---|
2106 | :item-identifiers |
---|
2107 | (list (make-construct |
---|
2108 | 'ItemIdentifierC |
---|
2109 | :uri "http://some.where/ii/association-reifier")))) |
---|
2110 | (reifier-role-1-1 (make-construct |
---|
2111 | 'TopicC :start-revision 100 |
---|
2112 | :item-identifiers |
---|
2113 | (list (make-construct |
---|
2114 | 'ItemIdentifierC |
---|
2115 | :uri "http://some.where/ii/role-reifier")))) |
---|
2116 | (scope-2 (make-construct |
---|
2117 | 'TopicC :start-revision 100 |
---|
2118 | :psis |
---|
2119 | (list (make-construct |
---|
2120 | 'PersistentIdC |
---|
2121 | :uri "http://some.where/my-scope")))) |
---|
2122 | (tm (make-construct 'TopicMapC :start-revision 100 |
---|
2123 | :item-idenitfiers |
---|
2124 | (list (make-construct 'ItemIdentifierC |
---|
2125 | :uri "http://some.where/tm"))))) |
---|
2126 | (is (= (length (elephant:get-instances-by-class 'AssociationC)) 0)) |
---|
2127 | (let ((assoc-1 (jtm::import-association-from-jtm-list |
---|
2128 | (json:decode-json-from-string j-assoc-1) |
---|
2129 | (list tm) :revision 100))) |
---|
2130 | (is (= (length (elephant:get-instances-by-class 'AssociationC)) 1)) |
---|
2131 | (is (= (length (elephant:get-instances-by-class 'RoleC)) 2)) |
---|
2132 | (is (eql (instance-of assoc-1 :revision 0) written-by)) |
---|
2133 | (is-false (set-exclusive-or |
---|
2134 | (list "http://some.where/ii/association") |
---|
2135 | (map 'list #'d:uri (item-identifiers assoc-1 :revision 0)) |
---|
2136 | :test #'string=)) |
---|
2137 | (is (eql (reifier assoc-1 :revision 0) reifier-assoc-1)) |
---|
2138 | (is-true (find tm (in-topicmaps assoc-1 :revision 0))) |
---|
2139 | (is-false (themes assoc-1 :revision 0)) |
---|
2140 | (= (length (roles assoc-1 :revision 0)) 2) |
---|
2141 | (is-true (find-if #'(lambda(role) |
---|
2142 | (and (eql (instance-of role :revision 0) writer) |
---|
2143 | (eql (player role :revision 0) goethe) |
---|
2144 | (not (item-identifiers role :revision 0)) |
---|
2145 | (eql (reifier role :revision 0) |
---|
2146 | reifier-role-1-1))) |
---|
2147 | (roles assoc-1 :revision 0))) |
---|
2148 | (is-true |
---|
2149 | (find-if #'(lambda(role) |
---|
2150 | (and (eql (instance-of role :revision 0) written) |
---|
2151 | (eql (player role :revision 0) zauberlehrling) |
---|
2152 | (= (length (item-identifiers role :revision 0)) 1) |
---|
2153 | (string= |
---|
2154 | "http://some.where/ii/role-2" |
---|
2155 | (uri (first (item-identifiers role :revision 0)))) |
---|
2156 | (not (reifier role :revision 0)))) |
---|
2157 | (roles assoc-1 :revision 0))) |
---|
2158 | (is (= (length (player-in-roles goethe :revision 0)) 1)) |
---|
2159 | (is (= (length (player-in-roles zauberlehrling :revision 0)) 1)) |
---|
2160 | (is (= (length (player-in-roles author :revision 0)) 0))) |
---|
2161 | (let ((assoc-2 (jtm::import-association-from-jtm-list |
---|
2162 | (json:decode-json-from-string j-assoc-2) |
---|
2163 | (list tm) :revision 100 :prefixes prefixes))) |
---|
2164 | (is (= (length (elephant:get-instances-by-class 'AssociationC)) 2)) |
---|
2165 | (is (= (length (elephant:get-instances-by-class 'RoleC)) 4)) |
---|
2166 | (is (eql (instance-of assoc-2 :revision 0) tit)) |
---|
2167 | (is-false (item-identifiers assoc-2 :revision 0)) |
---|
2168 | (is-false (reifier assoc-2 :revision 0)) |
---|
2169 | (is-true (find tm (in-topicmaps assoc-2 :revision 0))) |
---|
2170 | (is (= (length (themes assoc-2 :revision 0)) 1)) |
---|
2171 | (is (eql (first (themes assoc-2 :revision 0)) scope-2)) |
---|
2172 | (= (length (roles assoc-2 :revision 0)) 2) |
---|
2173 | (is-true (find-if #'(lambda(role) |
---|
2174 | (and (eql (instance-of role :revision 0) tt) |
---|
2175 | (eql (player role :revision 0) author) |
---|
2176 | (not (item-identifiers role :revision 0)) |
---|
2177 | (not (reifier role :revision 0)))) |
---|
2178 | (roles assoc-2 :revision 0))) |
---|
2179 | (is-true |
---|
2180 | (find-if #'(lambda(role) |
---|
2181 | (and (eql (instance-of role :revision 0) it) |
---|
2182 | (eql (player role :revision 0) goethe) |
---|
2183 | (not (item-identifiers role :revision 0)) |
---|
2184 | (not (reifier role :revision 0)))) |
---|
2185 | (roles assoc-2 :revision 0))) |
---|
2186 | (is (= (length (player-in-roles goethe :revision 0)) 2)) |
---|
2187 | (is (= (length (player-in-roles zauberlehrling :revision 0)) 1)) |
---|
2188 | (is (= (length (player-in-roles author :revision 0)) 1))) |
---|
2189 | (let ((assocs (jtm::import-associations-from-jtm-lists |
---|
2190 | (list (json:decode-json-from-string j-assoc-1) |
---|
2191 | (json:decode-json-from-string j-assoc-2)) |
---|
2192 | (list tm) :revision 200 :prefixes prefixes))) |
---|
2193 | (is (= (length assocs) 2)) |
---|
2194 | (is (= (length (player-in-roles goethe :revision 0)) 2)) |
---|
2195 | (is (= (length (player-in-roles zauberlehrling :revision 0)) 1)) |
---|
2196 | (is (= (length (player-in-roles author :revision 0)) 1))) |
---|
2197 | (signals exceptions::JTM-error |
---|
2198 | (jtm::import-association-from-jtm-list |
---|
2199 | (json:decode-json-from-string j-assoc-1) |
---|
2200 | nil :revision 100)) |
---|
2201 | (signals exceptions::JTM-error |
---|
2202 | (jtm::import-association-from-jtm-list |
---|
2203 | (json:decode-json-from-string j-assoc-2) |
---|
2204 | nil :revision 100)) |
---|
2205 | (signals exceptions::JTM-error |
---|
2206 | (jtm::import-association-from-jtm-list |
---|
2207 | (json:decode-json-from-string |
---|
2208 | "{\"item_identifiers\":null,\"type\":\"si:http:\\/\\/some.where\\/tmsparql\\/written-by\",\"reifier\":null,\"scope\":null,\"roles\":null}") |
---|
2209 | (list tm) :revision 100)) |
---|
2210 | (signals exceptions::JTM-error |
---|
2211 | (jtm::import-association-from-jtm-list |
---|
2212 | (json:decode-json-from-string |
---|
2213 | "{\"item_identifiers\":null,\"type\":null,\"reifier\":null,\"scope\":null,\"roles\":[{\"item_identifiers\":null,\"type\":\"si:http:\\/\\/some.where\\/tmsparql\\/writer\",\"reifier\":\"ii:http:\\/\\/some.where\\/ii\\/role-reifier\",\"player\":\"si:http:\\/\\/some.where\\/tmsparql\\/author\\/goethe\"}]}") |
---|
2214 | (list tm) :revision 100)) |
---|
2215 | (signals exceptions::JTM-error |
---|
2216 | (jtm::import-associations-from-jtm-lists |
---|
2217 | (list (json:decode-json-from-string j-assoc-1)) |
---|
2218 | nil :revision 100)) |
---|
2219 | (signals exceptions::JTM-error |
---|
2220 | (jtm::import-associations-from-jtm-lists |
---|
2221 | (list (json:decode-json-from-string j-assoc-2)) |
---|
2222 | nil :revision 100))))) |
---|
2223 | |
---|
2224 | |
---|
2225 | (test test-import-roles |
---|
2226 | "Tests the function import-role-from-jtm-list." |
---|
2227 | (with-fixture with-empty-db ("data_base") |
---|
2228 | (let* ((prefixes (list (list :pref "xsd" :value *xsd-ns*) |
---|
2229 | (list :pref "pref_1" :value "http://some.where/"))) |
---|
2230 | (jtm-role-1 "{\"version\":\"1.1\",\"prefixes\":{\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_1\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":[\"[pref_1:ii-3]\",\"[pref_1:ii-4]\"],\"type\":\"sl:[pref_1:sl-1]\",\"item_type\":\"role\",\"parent\":[\"ii:[pref_1:ii-2]\"],\"reifier\":\"sl:[pref_1:sl-2]\",\"player\":\"si:[pref_1:psi-1]\"}") |
---|
2231 | (jtm-role-2 "{\"version\":\"1.0\",\"item_identifiers\":null,\"type\":\"ii:http:\\/\\/some.where\\/ii-1\",\"item_type\":\"role\",\"reifier\":null,\"player\":\"sl:http:\\/\\/some.where\\/sl-1\"}") |
---|
2232 | (type-1 (make-construct |
---|
2233 | 'TopicC :start-revision 100 |
---|
2234 | :locators |
---|
2235 | (list (make-construct 'SubjectLocatorC |
---|
2236 | :uri "http://some.where/sl-1")))) |
---|
2237 | (reifier-1 (make-construct |
---|
2238 | 'TopicC :start-revision 100 |
---|
2239 | :locators |
---|
2240 | (list (make-construct 'SubjectLocatorC |
---|
2241 | :uri "http://some.where/sl-2")))) |
---|
2242 | (parent-1 (make-construct |
---|
2243 | 'AssociationC :start-revision 100 |
---|
2244 | :item-identifiers |
---|
2245 | (list (make-construct 'ItemIdentifierC |
---|
2246 | :uri "http://some.where/ii-2")))) |
---|
2247 | (player-1 (make-construct |
---|
2248 | 'TopicC :start-revision 100 |
---|
2249 | :psis |
---|
2250 | (list (make-construct 'PersistentIdC |
---|
2251 | :uri "http://some.where/psi-1")))) |
---|
2252 | (type-2 (make-construct |
---|
2253 | 'TopicC :start-revision 100 |
---|
2254 | :item-identifiers |
---|
2255 | (list (make-construct 'ItemIdentifierC |
---|
2256 | :uri "http://some.where/ii-1")))) |
---|
2257 | (player-2 type-1) |
---|
2258 | (role-1 (jtm::import-role-from-jtm-list |
---|
2259 | (json:decode-json-from-string jtm-role-1) |
---|
2260 | nil :revision 100 :prefixes prefixes)) |
---|
2261 | (role-2 (jtm::import-role-from-jtm-list |
---|
2262 | (json:decode-json-from-string jtm-role-2) |
---|
2263 | parent-1 :revision 100))) |
---|
2264 | (is (= (length (elephant:get-instances-by-class 'AssociationC)) 1)) |
---|
2265 | (is (= (length (elephant:get-instances-by-class 'RoleC)) 2)) |
---|
2266 | (is (= (length (roles parent-1 :revision 0)) 2)) |
---|
2267 | (map 'list #'(lambda(role) |
---|
2268 | (is (eql (parent role :revision 0) parent-1))) |
---|
2269 | (elephant:get-instances-by-class 'RoleC)) |
---|
2270 | (is-true (find-if #'(lambda(role) |
---|
2271 | (and |
---|
2272 | (eql (instance-of role :revision 0) type-1) |
---|
2273 | (eql (player role :revision 0) player-1) |
---|
2274 | (eql (reifier role :revision 0) reifier-1) |
---|
2275 | (= (length (item-identifiers role :revision 0)) 2) |
---|
2276 | (or (string= |
---|
2277 | (uri (first (item-identifiers role :revision 0))) |
---|
2278 | "http://some.where/ii-3") |
---|
2279 | (string= |
---|
2280 | (uri (second (item-identifiers role :revision 0))) |
---|
2281 | "http://some.where/ii-3")) |
---|
2282 | (or (string= |
---|
2283 | (uri (first (item-identifiers role :revision 0))) |
---|
2284 | "http://some.where/ii-4") |
---|
2285 | (string= |
---|
2286 | (uri (second (item-identifiers role :revision 0))) |
---|
2287 | "http://some.where/ii-4")))) |
---|
2288 | (roles parent-1 :revision 0))) |
---|
2289 | (is-true (find-if #'(lambda(role) |
---|
2290 | (and |
---|
2291 | (eql (instance-of role :revision 0) type-2) |
---|
2292 | (eql (player role :revision 0) player-2) |
---|
2293 | (not (reifier role :revision 0)) |
---|
2294 | (not (item-identifiers role :revision 0)))) |
---|
2295 | (roles parent-1 :revision 0))) |
---|
2296 | (is-true (find role-1 (roles parent-1 :revision 0))) |
---|
2297 | (is-true (find role-2 (roles parent-1 :revision 0))) |
---|
2298 | (signals exceptions::JTM-error |
---|
2299 | (jtm::import-role-from-jtm-list |
---|
2300 | (json:decode-json-from-string jtm-role-1) |
---|
2301 | nil :revision 100)) |
---|
2302 | (signals exceptions::JTM-error |
---|
2303 | (jtm::import-role-from-jtm-list |
---|
2304 | (json:decode-json-from-string jtm-role-2) |
---|
2305 | nil :revision 100)) |
---|
2306 | (signals exceptions::JTM-error |
---|
2307 | (jtm::import-role-from-jtm-list |
---|
2308 | (json:decode-json-from-string "{\"version\":\"1.0\",\"item_identifiers\":null,\"type\":\"ii:http:\\/\\/some.where\\/ii-1\",\"item_type\":\"role\",\"reifier\":null,\"player\":null}") |
---|
2309 | parent-1 :revision 100)) |
---|
2310 | (signals exceptions::JTM-error |
---|
2311 | (jtm::import-role-from-jtm-list |
---|
2312 | (json:decode-json-from-string "{\"version\":\"1.0\",\"item_identifiers\":null,\"type\":null,\"item_type\":\"role\",\"reifier\":null,\"player\":\"ii:http:\\/\\/some.where\\/ii-1\"}") |
---|
2313 | parent-1 :revision 100))))) |
---|
2314 | |
---|
2315 | |
---|
2316 | (test test-import-topic-maps-1 |
---|
2317 | "Tests the function import-topic-map-from-jtm-list." |
---|
2318 | (with-fixture with-empty-db ("data_base") |
---|
2319 | (let ((jtm-str |
---|
2320 | (read-file-to-string |
---|
2321 | (merge-pathnames |
---|
2322 | (asdf:component-pathname |
---|
2323 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
2324 | "jtm_1.1_test.jtm")))) |
---|
2325 | (make-construct 'TopicC :start-revision 100 |
---|
2326 | :psis |
---|
2327 | (list (make-construct 'PersistentIdC |
---|
2328 | :uri *topic-name-psi*))) |
---|
2329 | (let ((tm (import-construct-from-jtm-string |
---|
2330 | jtm-str :revision 100 :jtm-format :1.1))) |
---|
2331 | (is-true tm) |
---|
2332 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 43)) |
---|
2333 | (loop for top in (elephant:get-instances-by-class 'TopicC) do |
---|
2334 | (cond ((and |
---|
2335 | (= (length (psis top :revision 0)) 1) |
---|
2336 | (find |
---|
2337 | (uri (first (psis top :revision 0))) |
---|
2338 | (list |
---|
2339 | "http://www.topicmaps.org/xtm/1.0/core.xtm#topic" |
---|
2340 | "http://www.topicmaps.org/xtm/1.0/core.xtm#association" |
---|
2341 | "http://www.topicmaps.org/xtm/1.0/core.xtm#occurrence" |
---|
2342 | "http://www.topicmaps.org/xtm/1.0/core.xtm#class-instance" |
---|
2343 | "http://www.topicmaps.org/xtm/1.0/core.xtm#class" |
---|
2344 | "http://www.topicmaps.org/xtm/1.0/core.xtm#supertype-subtype" |
---|
2345 | "http://www.topicmaps.org/xtm/1.0/core.xtm#supertype" |
---|
2346 | "http://www.topicmaps.org/xtm/1.0/core.xtm#subtype" |
---|
2347 | "http://www.topicmaps.org/xtm/1.0/core.xtm#sort" |
---|
2348 | "http://www.topicmaps.org/xtm/1.0/core.xtm#display") |
---|
2349 | :test #'string=)) |
---|
2350 | (is-false (used-as-theme top :revision 0)) |
---|
2351 | (is-false (used-as-type top :revision 0)) |
---|
2352 | (is-false (player-in-roles top :revision 0)) |
---|
2353 | (is-false (reified-construct top :revision 0)) |
---|
2354 | (is-false (occurrences top :revision 0)) |
---|
2355 | (is-false (names top :revision 0)) |
---|
2356 | (is-false (item-identifiers top :revision 0)) |
---|
2357 | (is-false (locators top :revision 0)) |
---|
2358 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2359 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2360 | ((and |
---|
2361 | (= (length (psis top :revision 0)) 1) |
---|
2362 | (string= (uri (first (psis top :revision 0))) |
---|
2363 | "http://psi.topicmaps.org/iso13250/model/topic-name")) |
---|
2364 | (is-false (used-as-theme top :revision 0)) |
---|
2365 | (is-true (used-as-type top :revision 0)) |
---|
2366 | (is-false (player-in-roles top :revision 0)) |
---|
2367 | (is-false (reified-construct top :revision 0)) |
---|
2368 | (is-false (occurrences top :revision 0)) |
---|
2369 | (is-false (names top :revision 0)) |
---|
2370 | (is-false (item-identifiers top :revision 0)) |
---|
2371 | (is-false (locators top :revision 0)) |
---|
2372 | (is-false (in-topicmaps top :revision 0))) |
---|
2373 | ((and |
---|
2374 | (= (length (psis top :revision 0)) 1) |
---|
2375 | (find (uri (first (psis top :revision 0))) |
---|
2376 | (list "http://psi.topicmaps.org/iso13250/model/type-instance" |
---|
2377 | "http://psi.topicmaps.org/iso13250/model/type" |
---|
2378 | "http://psi.topicmaps.org/iso13250/model/instance") |
---|
2379 | :test #'string=)) |
---|
2380 | (is-false (used-as-theme top :revision 0)) |
---|
2381 | (is (= (length (used-as-type top :revision 0)) 29)) |
---|
2382 | (is-false (player-in-roles top :revision 0)) |
---|
2383 | (is-false (reified-construct top :revision 0)) |
---|
2384 | (is-false (occurrences top :revision 0)) |
---|
2385 | (is-false (names top :revision 0)) |
---|
2386 | (is-false (item-identifiers top :revision 0)) |
---|
2387 | (is-false (locators top :revision 0)) |
---|
2388 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2389 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2390 | ((and |
---|
2391 | (= (length (psis top :revision 0)) 1) |
---|
2392 | (find |
---|
2393 | (uri (first (psis top :revision 0))) |
---|
2394 | (list |
---|
2395 | "http://some.where/tmsparql/written-by" |
---|
2396 | "http://some.where/tmsparql/written" |
---|
2397 | "http://some.where/tmsparql/writer" |
---|
2398 | "http://some.where/tmsparql/first-name" |
---|
2399 | "http://some.where/tmsparql/last-name" |
---|
2400 | "http://some.where/tmsparql/title" |
---|
2401 | "http://some.where/tmsparql/date-of-birth" |
---|
2402 | "http://some.where/tmsparql/date-of-death" |
---|
2403 | "http://some.where/tmsparql/years" |
---|
2404 | "http://some.where/tmsparql/isDead" |
---|
2405 | "http://some.where/tmsparql/isAlive" |
---|
2406 | "http://some.where/tmsparql/poem-content") |
---|
2407 | :test 'string=)) |
---|
2408 | (is-false (used-as-theme top :revision 0)) |
---|
2409 | (is-true (used-as-type top :revision 0)) |
---|
2410 | (is (= (length (player-in-roles top :revision 0)) 1)) |
---|
2411 | (is-false (reified-construct top :revision 0)) |
---|
2412 | (is-false (occurrences top :revision 0)) |
---|
2413 | (is-false (names top :revision 0)) |
---|
2414 | (is-false (item-identifiers top :revision 0)) |
---|
2415 | (is-false (locators top :revision 0)) |
---|
2416 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2417 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2418 | ((and |
---|
2419 | (= (length (psis top :revision 0)) 1) |
---|
2420 | (find |
---|
2421 | (uri (first (psis top :revision 0))) |
---|
2422 | (list |
---|
2423 | "http://psi.topicmaps.org/tmcl/topic-type" |
---|
2424 | "http://psi.topicmaps.org/tmcl/occurrence-type" |
---|
2425 | "http://psi.topicmaps.org/tmcl/association-type" |
---|
2426 | "http://psi.topicmaps.org/tmcl/name-type" |
---|
2427 | "http://psi.topicmaps.org/tmcl/scope-type" |
---|
2428 | "http://psi.topicmaps.org/tmcl/role-type") |
---|
2429 | :test #'string=)) |
---|
2430 | (is-false (used-as-theme top :revision 0)) |
---|
2431 | (is-false (used-as-type top :revision 0)) |
---|
2432 | (is-true (player-in-roles top :revision 0)) |
---|
2433 | (is-false (reified-construct top :revision 0)) |
---|
2434 | (is-false (occurrences top :revision 0)) |
---|
2435 | (is-false (names top :revision 0)) |
---|
2436 | (is-false (item-identifiers top :revision 0)) |
---|
2437 | (is-false (locators top :revision 0)) |
---|
2438 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2439 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2440 | ((or (and |
---|
2441 | (= (length (psis top :revision 0)) 1) |
---|
2442 | (find |
---|
2443 | (uri (first (psis top :revision 0))) |
---|
2444 | (list |
---|
2445 | "http://some.where/tmsparql/author/goethe" |
---|
2446 | "http://some.where/tmsparql/author" |
---|
2447 | "http://some.where/psis/poem/zauberlehrling" |
---|
2448 | "http://some.where/tmsparql/poem" |
---|
2449 | "http://some.where/tmsparql/display-name" |
---|
2450 | "http://some.where/tmsparql/de" |
---|
2451 | "http://some.where/tmsparql/reifier-type") |
---|
2452 | :test #'string=)) |
---|
2453 | (and |
---|
2454 | (= (length (item-identifiers top :revision 0)) 1) |
---|
2455 | (find |
---|
2456 | (uri (first (item-identifiers top :revision 0))) |
---|
2457 | (list |
---|
2458 | "http://some.where/ii/goethe-occ-reifier" |
---|
2459 | "http://some.where/ii/goethe-name-reifier" |
---|
2460 | "http://some.where/ii/association-reifier" |
---|
2461 | "http://some.where/ii/role-reifier") |
---|
2462 | :test #'string=))) |
---|
2463 | nil) ;is checked in the next unit-test |
---|
2464 | (t |
---|
2465 | (is-false top)))))))) |
---|
2466 | |
---|
2467 | |
---|
2468 | |
---|
2469 | |
---|
2470 | (test test-import-topic-maps-2 |
---|
2471 | "Tests the function import-topic-map-from-jtm-list." |
---|
2472 | (with-fixture with-empty-db ("data_base") |
---|
2473 | (let ((jtm-str |
---|
2474 | (read-file-to-string |
---|
2475 | (merge-pathnames |
---|
2476 | (asdf:component-pathname |
---|
2477 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
2478 | "jtm_1.1_test.jtm")))) |
---|
2479 | (make-construct 'TopicC :start-revision 100 |
---|
2480 | :psis |
---|
2481 | (list (make-construct 'PersistentIdC |
---|
2482 | :uri *topic-name-psi*))) |
---|
2483 | (let ((tm (import-construct-from-jtm-string |
---|
2484 | jtm-str :revision 100 :jtm-format :1.1))) |
---|
2485 | (is-true tm) |
---|
2486 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 43)) |
---|
2487 | (loop for top in (elephant:get-instances-by-class 'TopicC) do |
---|
2488 | (cond ((and |
---|
2489 | (= (length (psis top :revision 0)) 1) |
---|
2490 | (find |
---|
2491 | (uri (first (psis top :revision 0))) |
---|
2492 | (list |
---|
2493 | "http://psi.topicmaps.org/iso13250/model/topic-name" |
---|
2494 | "http://psi.topicmaps.org/iso13250/model/type-instance" |
---|
2495 | "http://psi.topicmaps.org/iso13250/model/type" |
---|
2496 | "http://psi.topicmaps.org/iso13250/model/instance" |
---|
2497 | "http://www.topicmaps.org/xtm/1.0/core.xtm#topic" |
---|
2498 | "http://www.topicmaps.org/xtm/1.0/core.xtm#association" |
---|
2499 | "http://www.topicmaps.org/xtm/1.0/core.xtm#occurrence" |
---|
2500 | "http://www.topicmaps.org/xtm/1.0/core.xtm#class-instance" |
---|
2501 | "http://www.topicmaps.org/xtm/1.0/core.xtm#class" |
---|
2502 | "http://www.topicmaps.org/xtm/1.0/core.xtm#supertype-subtype" |
---|
2503 | "http://www.topicmaps.org/xtm/1.0/core.xtm#supertype" |
---|
2504 | "http://www.topicmaps.org/xtm/1.0/core.xtm#subtype" |
---|
2505 | "http://www.topicmaps.org/xtm/1.0/core.xtm#sort" |
---|
2506 | "http://www.topicmaps.org/xtm/1.0/core.xtm#display" |
---|
2507 | "http://some.where/tmsparql/written-by" |
---|
2508 | "http://some.where/tmsparql/written" |
---|
2509 | "http://some.where/tmsparql/writer" |
---|
2510 | "http://some.where/tmsparql/first-name" |
---|
2511 | "http://some.where/tmsparql/last-name" |
---|
2512 | "http://some.where/tmsparql/title" |
---|
2513 | "http://some.where/tmsparql/date-of-birth" |
---|
2514 | "http://some.where/tmsparql/date-of-death" |
---|
2515 | "http://some.where/tmsparql/years" |
---|
2516 | "http://some.where/tmsparql/isDead" |
---|
2517 | "http://some.where/tmsparql/isAlive" |
---|
2518 | "http://some.where/tmsparql/poem-content" |
---|
2519 | "http://psi.topicmaps.org/tmcl/topic-type" |
---|
2520 | "http://psi.topicmaps.org/tmcl/occurrence-type" |
---|
2521 | "http://psi.topicmaps.org/tmcl/association-type" |
---|
2522 | "http://psi.topicmaps.org/tmcl/name-type" |
---|
2523 | "http://psi.topicmaps.org/tmcl/scope-type" |
---|
2524 | "http://psi.topicmaps.org/tmcl/role-type") |
---|
2525 | :test #'string=)) |
---|
2526 | nil) ;is checked in the unit-test before |
---|
2527 | ((and |
---|
2528 | (= (length (psis top :revision 0)) 1) |
---|
2529 | (find |
---|
2530 | (uri (first (psis top :revision 0))) |
---|
2531 | (list |
---|
2532 | "http://some.where/tmsparql/author" |
---|
2533 | "http://some.where/tmsparql/poem" |
---|
2534 | "http://some.where/tmsparql/display-name" |
---|
2535 | "http://some.where/tmsparql/de" |
---|
2536 | "http://some.where/tmsparql/reifier-type") |
---|
2537 | :test #'string=)) |
---|
2538 | (is-false (reified-construct top :revision 0)) |
---|
2539 | (is-false (occurrences top :revision 0)) |
---|
2540 | (is-false (names top :revision 0)) |
---|
2541 | (is-false (item-identifiers top :revision 0)) |
---|
2542 | (is-false (locators top :revision 0)) |
---|
2543 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2544 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2545 | ((and |
---|
2546 | (= (length (item-identifiers top :revision 0)) 1) |
---|
2547 | (find |
---|
2548 | (uri (first (item-identifiers top :revision 0))) |
---|
2549 | (list |
---|
2550 | "http://some.where/ii/goethe-occ-reifier" |
---|
2551 | "http://some.where/ii/goethe-name-reifier" |
---|
2552 | "http://some.where/ii/association-reifier" |
---|
2553 | "http://some.where/ii/role-reifier") |
---|
2554 | :test #'string=)) |
---|
2555 | (is-false (used-as-theme top :revision 0)) |
---|
2556 | (is-false (used-as-type top :revision 0)) |
---|
2557 | (is-true (player-in-roles top :revision 0)) |
---|
2558 | (is-true (reified-construct top :revision 0)) |
---|
2559 | (is-false (occurrences top :revision 0)) |
---|
2560 | (is-false (names top :revision 0)) |
---|
2561 | (is-false (psis top :revision 0)) |
---|
2562 | (is-false (locators top :revision 0)) |
---|
2563 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2564 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2565 | ((and (= (length (psis top :revision 0)) 1) |
---|
2566 | (string= (uri (first (psis top :revision 0))) |
---|
2567 | "http://some.where/tmsparql/author/goethe")) |
---|
2568 | (is-false (used-as-theme top :revision 0)) |
---|
2569 | (is-false (used-as-type top :revision 0)) |
---|
2570 | (is-true (player-in-roles top :revision 0)) |
---|
2571 | (is-false (reified-construct top :revision 0)) |
---|
2572 | (is (= (length (occurrences top :revision 0)) 5)) |
---|
2573 | (is (= (length (names top :revision 0)) 3)) |
---|
2574 | (is (= (length (item-identifiers top :revision 0)) 1)) |
---|
2575 | (is (string= |
---|
2576 | "http://some.where/ii/goethe" |
---|
2577 | (uri (first (item-identifiers top :revision 0))))) |
---|
2578 | (is-false (locators top :revision 0)) |
---|
2579 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2580 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2581 | ((and (= (length (psis top :revision 0)) 1) |
---|
2582 | (string= (uri (first (psis top :revision 0))) |
---|
2583 | "http://some.where/psis/poem/zauberlehrling")) |
---|
2584 | (is-false (used-as-theme top :revision 0)) |
---|
2585 | (is-false (used-as-type top :revision 0)) |
---|
2586 | (is-true (player-in-roles top :revision 0)) |
---|
2587 | (is-false (reified-construct top :revision 0)) |
---|
2588 | (is (= (length (occurrences top :revision 0)) 1)) |
---|
2589 | (is (= (length (names top :revision 0)) 1)) |
---|
2590 | (is-false (item-identifiers top :revision 0)) |
---|
2591 | (is-false (locators top :revision 0)) |
---|
2592 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2593 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2594 | (t |
---|
2595 | (is-false top)))) |
---|
2596 | (is (= (length (elephant:get-instances-by-class 'TopicMapC)) 1)) |
---|
2597 | (is (= (length (elephant:get-instances-by-class 'AssociationC)) 30)) |
---|
2598 | (let ((assoc |
---|
2599 | (get-item-by-item-identifier "http://some.where/ii/association" |
---|
2600 | :revision 0))) |
---|
2601 | (is (typep assoc 'AssociationC)) |
---|
2602 | (is (= (length (roles assoc :revision 0)) 2)) |
---|
2603 | (is (= (length (item-identifiers assoc :revision 0)) 1)) |
---|
2604 | (is (eql (instance-of assoc :revision 0) |
---|
2605 | (get-item-by-psi "http://some.where/tmsparql/written-by" |
---|
2606 | :revision 0))) |
---|
2607 | (is (eql (reifier assoc :revision 0) |
---|
2608 | (get-item-by-item-identifier |
---|
2609 | "http://some.where/ii/association-reifier" |
---|
2610 | :revision 0)))))))) |
---|
2611 | |
---|
2612 | |
---|
2613 | (test test-import-topic-maps-3 |
---|
2614 | "Tests the function import-topic-map-from-jtm-list." |
---|
2615 | (with-fixture with-empty-db ("data_base") |
---|
2616 | (let* ((jtm-str |
---|
2617 | (read-file-to-string |
---|
2618 | (merge-pathnames |
---|
2619 | (asdf:component-pathname |
---|
2620 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
2621 | "jtm_1.0_test.jtm"))) |
---|
2622 | (topic-name |
---|
2623 | (make-construct 'TopicC :start-revision 100 |
---|
2624 | :psis |
---|
2625 | (list (make-construct 'PersistentIdC |
---|
2626 | :uri *topic-name-psi*)))) |
---|
2627 | (tm (import-construct-from-jtm-string |
---|
2628 | jtm-str :revision 100 :jtm-format :1.0 |
---|
2629 | :tm-id "http://some.where/jtm-tm"))) |
---|
2630 | (is-true tm) |
---|
2631 | (is-true topic-name) |
---|
2632 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 43)) |
---|
2633 | (loop for top in (elephant:get-instances-by-class 'TopicC) do |
---|
2634 | (cond ((and |
---|
2635 | (= (length (psis top :revision 0)) 1) |
---|
2636 | (find |
---|
2637 | (uri (first (psis top :revision 0))) |
---|
2638 | (list |
---|
2639 | "http://www.topicmaps.org/xtm/1.0/core.xtm#topic" |
---|
2640 | "http://www.topicmaps.org/xtm/1.0/core.xtm#association" |
---|
2641 | "http://www.topicmaps.org/xtm/1.0/core.xtm#occurrence" |
---|
2642 | "http://www.topicmaps.org/xtm/1.0/core.xtm#class-instance" |
---|
2643 | "http://www.topicmaps.org/xtm/1.0/core.xtm#class" |
---|
2644 | "http://www.topicmaps.org/xtm/1.0/core.xtm#supertype-subtype" |
---|
2645 | "http://www.topicmaps.org/xtm/1.0/core.xtm#supertype" |
---|
2646 | "http://www.topicmaps.org/xtm/1.0/core.xtm#subtype" |
---|
2647 | "http://www.topicmaps.org/xtm/1.0/core.xtm#sort" |
---|
2648 | "http://www.topicmaps.org/xtm/1.0/core.xtm#display") |
---|
2649 | :test #'string=)) |
---|
2650 | (is-false (used-as-theme top :revision 0)) |
---|
2651 | (is-false (used-as-type top :revision 0)) |
---|
2652 | (is-false (player-in-roles top :revision 0)) |
---|
2653 | (is-false (reified-construct top :revision 0)) |
---|
2654 | (is-false (occurrences top :revision 0)) |
---|
2655 | (is-false (names top :revision 0)) |
---|
2656 | (is-false (item-identifiers top :revision 0)) |
---|
2657 | (is-false (locators top :revision 0)) |
---|
2658 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2659 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2660 | ((and |
---|
2661 | (= (length (psis top :revision 0)) 1) |
---|
2662 | (string= (uri (first (psis top :revision 0))) |
---|
2663 | "http://psi.topicmaps.org/iso13250/model/topic-name")) |
---|
2664 | (is-false (used-as-theme top :revision 0)) |
---|
2665 | (is-true (used-as-type top :revision 0)) |
---|
2666 | (is-false (player-in-roles top :revision 0)) |
---|
2667 | (is-false (reified-construct top :revision 0)) |
---|
2668 | (is-false (occurrences top :revision 0)) |
---|
2669 | (is-false (names top :revision 0)) |
---|
2670 | (is-false (item-identifiers top :revision 0)) |
---|
2671 | (is-false (locators top :revision 0)) |
---|
2672 | (is-false (in-topicmaps top :revision 0))) |
---|
2673 | ((and |
---|
2674 | (= (length (psis top :revision 0)) 1) |
---|
2675 | (find (uri (first (psis top :revision 0))) |
---|
2676 | (list "http://psi.topicmaps.org/iso13250/model/type-instance" |
---|
2677 | "http://psi.topicmaps.org/iso13250/model/type" |
---|
2678 | "http://psi.topicmaps.org/iso13250/model/instance") |
---|
2679 | :test #'string=)) |
---|
2680 | (is-false (used-as-theme top :revision 0)) |
---|
2681 | (is (= (length (used-as-type top :revision 0)) 29)) |
---|
2682 | (is-false (player-in-roles top :revision 0)) |
---|
2683 | (is-false (reified-construct top :revision 0)) |
---|
2684 | (is-false (occurrences top :revision 0)) |
---|
2685 | (is-false (names top :revision 0)) |
---|
2686 | (is-false (item-identifiers top :revision 0)) |
---|
2687 | (is-false (locators top :revision 0)) |
---|
2688 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2689 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2690 | ((and |
---|
2691 | (= (length (psis top :revision 0)) 1) |
---|
2692 | (find |
---|
2693 | (uri (first (psis top :revision 0))) |
---|
2694 | (list |
---|
2695 | "http://some.where/tmsparql/written-by" |
---|
2696 | "http://some.where/tmsparql/written" |
---|
2697 | "http://some.where/tmsparql/writer" |
---|
2698 | "http://some.where/tmsparql/first-name" |
---|
2699 | "http://some.where/tmsparql/last-name" |
---|
2700 | "http://some.where/tmsparql/title" |
---|
2701 | "http://some.where/tmsparql/date-of-birth" |
---|
2702 | "http://some.where/tmsparql/date-of-death" |
---|
2703 | "http://some.where/tmsparql/years" |
---|
2704 | "http://some.where/tmsparql/isDead" |
---|
2705 | "http://some.where/tmsparql/isAlive" |
---|
2706 | "http://some.where/tmsparql/poem-content") |
---|
2707 | :test 'string=)) |
---|
2708 | (is-false (used-as-theme top :revision 0)) |
---|
2709 | (is-true (used-as-type top :revision 0)) |
---|
2710 | (is (= (length (player-in-roles top :revision 0)) 1)) |
---|
2711 | (is-false (reified-construct top :revision 0)) |
---|
2712 | (is-false (occurrences top :revision 0)) |
---|
2713 | (is-false (names top :revision 0)) |
---|
2714 | (is-false (item-identifiers top :revision 0)) |
---|
2715 | (is-false (locators top :revision 0)) |
---|
2716 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2717 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2718 | ((and |
---|
2719 | (= (length (psis top :revision 0)) 1) |
---|
2720 | (find |
---|
2721 | (uri (first (psis top :revision 0))) |
---|
2722 | (list |
---|
2723 | "http://psi.topicmaps.org/tmcl/topic-type" |
---|
2724 | "http://psi.topicmaps.org/tmcl/occurrence-type" |
---|
2725 | "http://psi.topicmaps.org/tmcl/association-type" |
---|
2726 | "http://psi.topicmaps.org/tmcl/name-type" |
---|
2727 | "http://psi.topicmaps.org/tmcl/scope-type" |
---|
2728 | "http://psi.topicmaps.org/tmcl/role-type") |
---|
2729 | :test #'string=)) |
---|
2730 | (is-false (used-as-theme top :revision 0)) |
---|
2731 | (is-false (used-as-type top :revision 0)) |
---|
2732 | (is-true (player-in-roles top :revision 0)) |
---|
2733 | (is-false (reified-construct top :revision 0)) |
---|
2734 | (is-false (occurrences top :revision 0)) |
---|
2735 | (is-false (names top :revision 0)) |
---|
2736 | (is-false (item-identifiers top :revision 0)) |
---|
2737 | (is-false (locators top :revision 0)) |
---|
2738 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2739 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2740 | ((or (and |
---|
2741 | (= (length (psis top :revision 0)) 1) |
---|
2742 | (find |
---|
2743 | (uri (first (psis top :revision 0))) |
---|
2744 | (list |
---|
2745 | "http://some.where/tmsparql/author/goethe" |
---|
2746 | "http://some.where/tmsparql/author" |
---|
2747 | "http://some.where/psis/poem/zauberlehrling" |
---|
2748 | "http://some.where/tmsparql/poem" |
---|
2749 | "http://some.where/tmsparql/display-name" |
---|
2750 | "http://some.where/tmsparql/de" |
---|
2751 | "http://some.where/tmsparql/reifier-type") |
---|
2752 | :test #'string=)) |
---|
2753 | (and |
---|
2754 | (= (length (item-identifiers top :revision 0)) 1) |
---|
2755 | (find |
---|
2756 | (uri (first (item-identifiers top :revision 0))) |
---|
2757 | (list |
---|
2758 | "http://some.where/ii/goethe-occ-reifier" |
---|
2759 | "http://some.where/ii/goethe-name-reifier" |
---|
2760 | "http://some.where/ii/association-reifier" |
---|
2761 | "http://some.where/ii/role-reifier") |
---|
2762 | :test #'string=))) |
---|
2763 | nil) ;is checked in the next unit-test |
---|
2764 | (t |
---|
2765 | (is-false top))))))) |
---|
2766 | |
---|
2767 | |
---|
2768 | (test test-import-topic-maps-4 |
---|
2769 | "Tests the function import-topic-map-from-jtm-list." |
---|
2770 | (with-fixture with-empty-db ("data_base") |
---|
2771 | (let* ((jtm-str |
---|
2772 | (read-file-to-string |
---|
2773 | (merge-pathnames |
---|
2774 | (asdf:component-pathname |
---|
2775 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
2776 | "jtm_1.0_test.jtm"))) |
---|
2777 | (topic-name |
---|
2778 | (make-construct 'TopicC :start-revision 100 |
---|
2779 | :psis |
---|
2780 | (list (make-construct 'PersistentIdC |
---|
2781 | :uri *topic-name-psi*)))) |
---|
2782 | (tm (import-construct-from-jtm-string |
---|
2783 | jtm-str :revision 100 :jtm-format :1.0 |
---|
2784 | :tm-id "http://some.where/jtm-tm"))) |
---|
2785 | (is-true topic-name) |
---|
2786 | (is-true tm) |
---|
2787 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 43)) |
---|
2788 | (loop for top in (elephant:get-instances-by-class 'TopicC) do |
---|
2789 | (cond ((and |
---|
2790 | (= (length (psis top :revision 0)) 1) |
---|
2791 | (find |
---|
2792 | (uri (first (psis top :revision 0))) |
---|
2793 | (list |
---|
2794 | "http://psi.topicmaps.org/iso13250/model/topic-name" |
---|
2795 | "http://psi.topicmaps.org/iso13250/model/type-instance" |
---|
2796 | "http://psi.topicmaps.org/iso13250/model/type" |
---|
2797 | "http://psi.topicmaps.org/iso13250/model/instance" |
---|
2798 | "http://www.topicmaps.org/xtm/1.0/core.xtm#topic" |
---|
2799 | "http://www.topicmaps.org/xtm/1.0/core.xtm#association" |
---|
2800 | "http://www.topicmaps.org/xtm/1.0/core.xtm#occurrence" |
---|
2801 | "http://www.topicmaps.org/xtm/1.0/core.xtm#class-instance" |
---|
2802 | "http://www.topicmaps.org/xtm/1.0/core.xtm#class" |
---|
2803 | "http://www.topicmaps.org/xtm/1.0/core.xtm#supertype-subtype" |
---|
2804 | "http://www.topicmaps.org/xtm/1.0/core.xtm#supertype" |
---|
2805 | "http://www.topicmaps.org/xtm/1.0/core.xtm#subtype" |
---|
2806 | "http://www.topicmaps.org/xtm/1.0/core.xtm#sort" |
---|
2807 | "http://www.topicmaps.org/xtm/1.0/core.xtm#display" |
---|
2808 | "http://some.where/tmsparql/written-by" |
---|
2809 | "http://some.where/tmsparql/written" |
---|
2810 | "http://some.where/tmsparql/writer" |
---|
2811 | "http://some.where/tmsparql/first-name" |
---|
2812 | "http://some.where/tmsparql/last-name" |
---|
2813 | "http://some.where/tmsparql/title" |
---|
2814 | "http://some.where/tmsparql/date-of-birth" |
---|
2815 | "http://some.where/tmsparql/date-of-death" |
---|
2816 | "http://some.where/tmsparql/years" |
---|
2817 | "http://some.where/tmsparql/isDead" |
---|
2818 | "http://some.where/tmsparql/isAlive" |
---|
2819 | "http://some.where/tmsparql/poem-content" |
---|
2820 | "http://psi.topicmaps.org/tmcl/topic-type" |
---|
2821 | "http://psi.topicmaps.org/tmcl/occurrence-type" |
---|
2822 | "http://psi.topicmaps.org/tmcl/association-type" |
---|
2823 | "http://psi.topicmaps.org/tmcl/name-type" |
---|
2824 | "http://psi.topicmaps.org/tmcl/scope-type" |
---|
2825 | "http://psi.topicmaps.org/tmcl/role-type") |
---|
2826 | :test #'string=)) |
---|
2827 | nil) ;is checked in the unit-test before |
---|
2828 | ((and |
---|
2829 | (= (length (psis top :revision 0)) 1) |
---|
2830 | (find |
---|
2831 | (uri (first (psis top :revision 0))) |
---|
2832 | (list |
---|
2833 | "http://some.where/tmsparql/author" |
---|
2834 | "http://some.where/tmsparql/poem" |
---|
2835 | "http://some.where/tmsparql/display-name" |
---|
2836 | "http://some.where/tmsparql/de" |
---|
2837 | "http://some.where/tmsparql/reifier-type") |
---|
2838 | :test #'string=)) |
---|
2839 | (is-false (reified-construct top :revision 0)) |
---|
2840 | (is-false (occurrences top :revision 0)) |
---|
2841 | (is-false (names top :revision 0)) |
---|
2842 | (is-false (item-identifiers top :revision 0)) |
---|
2843 | (is-false (locators top :revision 0)) |
---|
2844 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2845 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2846 | ((and |
---|
2847 | (= (length (item-identifiers top :revision 0)) 1) |
---|
2848 | (find |
---|
2849 | (uri (first (item-identifiers top :revision 0))) |
---|
2850 | (list |
---|
2851 | "http://some.where/ii/goethe-occ-reifier" |
---|
2852 | "http://some.where/ii/goethe-name-reifier" |
---|
2853 | "http://some.where/ii/association-reifier" |
---|
2854 | "http://some.where/ii/role-reifier") |
---|
2855 | :test #'string=)) |
---|
2856 | (is-false (used-as-theme top :revision 0)) |
---|
2857 | (is-false (used-as-type top :revision 0)) |
---|
2858 | (is-true (player-in-roles top :revision 0)) |
---|
2859 | (is-true (reified-construct top :revision 0)) |
---|
2860 | (is-false (occurrences top :revision 0)) |
---|
2861 | (is-false (names top :revision 0)) |
---|
2862 | (is-false (psis top :revision 0)) |
---|
2863 | (is-false (locators top :revision 0)) |
---|
2864 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2865 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2866 | ((and (= (length (psis top :revision 0)) 1) |
---|
2867 | (string= (uri (first (psis top :revision 0))) |
---|
2868 | "http://some.where/tmsparql/author/goethe")) |
---|
2869 | (is-false (used-as-theme top :revision 0)) |
---|
2870 | (is-false (used-as-type top :revision 0)) |
---|
2871 | (is-true (player-in-roles top :revision 0)) |
---|
2872 | (is-false (reified-construct top :revision 0)) |
---|
2873 | (is (= (length (occurrences top :revision 0)) 5)) |
---|
2874 | (is (= (length (names top :revision 0)) 3)) |
---|
2875 | (is (= (length (item-identifiers top :revision 0)) 1)) |
---|
2876 | (is (string= |
---|
2877 | "http://some.where/ii/goethe" |
---|
2878 | (uri (first (item-identifiers top :revision 0))))) |
---|
2879 | (is-false (locators top :revision 0)) |
---|
2880 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2881 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2882 | ((and (= (length (psis top :revision 0)) 1) |
---|
2883 | (string= (uri (first (psis top :revision 0))) |
---|
2884 | "http://some.where/psis/poem/zauberlehrling")) |
---|
2885 | (is-false (used-as-theme top :revision 0)) |
---|
2886 | (is-false (used-as-type top :revision 0)) |
---|
2887 | (is-true (player-in-roles top :revision 0)) |
---|
2888 | (is-false (reified-construct top :revision 0)) |
---|
2889 | (is (= (length (occurrences top :revision 0)) 1)) |
---|
2890 | (is (= (length (names top :revision 0)) 1)) |
---|
2891 | (is-false (item-identifiers top :revision 0)) |
---|
2892 | (is-false (locators top :revision 0)) |
---|
2893 | (is (= (length (in-topicmaps top :revision 0)) 1)) |
---|
2894 | (is (eql tm (first (in-topicmaps top :revision 0))))) |
---|
2895 | (t |
---|
2896 | (is-false top)))) |
---|
2897 | (is (= (length (elephant:get-instances-by-class 'AssociationC)) 30)) |
---|
2898 | (let ((assoc |
---|
2899 | (get-item-by-item-identifier "http://some.where/ii/association" |
---|
2900 | :revision 0))) |
---|
2901 | (is (= (length (elephant:get-instances-by-class 'TopicMapC)) 1)) |
---|
2902 | (is (typep assoc 'AssociationC)) |
---|
2903 | (is (= (length (roles assoc :revision 0)) 2)) |
---|
2904 | (is (= (length (item-identifiers assoc :revision 0)) 1)) |
---|
2905 | (is (eql (instance-of assoc :revision 0) |
---|
2906 | (get-item-by-psi "http://some.where/tmsparql/written-by" |
---|
2907 | :revision 0))) |
---|
2908 | (is (eql (reifier assoc :revision 0) |
---|
2909 | (get-item-by-item-identifier |
---|
2910 | "http://some.where/ii/association-reifier" |
---|
2911 | :revision 0))))))) |
---|
2912 | |
---|
2913 | |
---|
2914 | (test test-import-topic-maps-5 |
---|
2915 | "Tests the function import-topic-map-from-jtm-list." |
---|
2916 | (with-fixture with-empty-db ("data_base") |
---|
2917 | (let* ((jtm-str-1 |
---|
2918 | (read-file-to-string |
---|
2919 | (merge-pathnames |
---|
2920 | (asdf:component-pathname |
---|
2921 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
2922 | "jtm_1.0_test.jtm"))) |
---|
2923 | (jtm-str-2 |
---|
2924 | (read-file-to-string |
---|
2925 | (merge-pathnames |
---|
2926 | (asdf:component-pathname |
---|
2927 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
2928 | "jtm_1.1_test.jtm")))) |
---|
2929 | (make-construct 'TopicC :start-revision 100 |
---|
2930 | :psis |
---|
2931 | (list (make-construct 'PersistentIdC |
---|
2932 | :uri *topic-name-psi*))) |
---|
2933 | (signals exceptions::JTM-error |
---|
2934 | (import-construct-from-jtm-string |
---|
2935 | jtm-str-1 :revision 100 :jtm-format :1.1)) |
---|
2936 | (let ((tm (import-construct-from-jtm-string |
---|
2937 | jtm-str-2 :revision 100 :jtm-format :1.1 |
---|
2938 | :tm-id "http://some.where/new-tm-id"))) |
---|
2939 | (is-false (set-exclusive-or |
---|
2940 | (list "http://some.where/new-tm-id" |
---|
2941 | "http://some.where/tmsparql/jtm-tm") |
---|
2942 | (map 'list #'uri (item-identifiers tm :revision 0)) |
---|
2943 | :test #'string=)) |
---|
2944 | (is (= (length (elephant:get-instances-by-class 'TopicMapC)) 1)))))) |
---|
2945 | |
---|
2946 | |
---|
2947 | (test test-import-construct-from-jtm-string |
---|
2948 | "Tests the function import-construct-from-jtm-string when importing a name." |
---|
2949 | (with-fixture with-empty-db ("data_base") |
---|
2950 | (let* ((jtm-name-1 (concat "{\"version\":\"1.1\",\"prefixes\":{\"pref_1\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\",\"pref_2\":\"http:\\/\\/some.where\\/\"},\"item_identifiers\":[\"[pref_2:ii-2]\"],\"value\":\"name-1\",\"type\":\"sl:[pref_2:sl-1]\",\"item_type\":\"name\",\"parent\":[\"si:[pref_2:psi-1]\"],\"scope\":[\"si:[pref_2:psi-1]\"],\"variants\":[{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"value\":\"var-1\",\"scope\":[\"sl:[pref_2:sl-1]\"],\"reifier\":null},{\"item_identifiers\":null,\"datatype\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"value\":\"var-2\",\"scope\":[\"sl:[pref_2:sl-1]\"],\"reifier\":null}],\"reifier\":\"ii:[pref_2:ii-1]\"}")) |
---|
2951 | (jtm-name-2 "{\"version\":\"1.0\",\"item_identifiers\":null,\"value\":\"name-2\",\"type\":null,\"item_type\":\"name\",\"parent\":[\"sl:http://some.where/sl-1\"],\"scope\":null,\"variants\":null,\"reifier\":null}") |
---|
2952 | (jtm-name-3 "{\"version\":\"1.0\",\"item_identifiers\":null,\"value\":\"name-2\",\"type\":null,\"item_type\":\"name\",\"scope\":null,\"variants\":null,\"reifier\":null}") |
---|
2953 | (type-1 (make-construct |
---|
2954 | 'TopicC :start-revision 100 |
---|
2955 | :locators |
---|
2956 | (list (make-construct 'SubjectLocatorC |
---|
2957 | :uri "http://some.where/sl-1")))) |
---|
2958 | (type-2 (make-construct |
---|
2959 | 'TopicC :start-revision 100 |
---|
2960 | :psis |
---|
2961 | (list (make-construct 'PersistentIdC |
---|
2962 | :uri *topic-name-psi*)))) |
---|
2963 | (parent-1 (make-construct |
---|
2964 | 'TopicC :start-revision 100 |
---|
2965 | :psis |
---|
2966 | (list (make-construct 'PersistentIdC |
---|
2967 | :uri "http://some.where/psi-1")))) |
---|
2968 | (scope-1 parent-1) |
---|
2969 | (reifier-1 (make-construct |
---|
2970 | 'TopicC :start-revision 100 |
---|
2971 | :item-identifiers |
---|
2972 | (list (make-construct 'ItemIdentifierC |
---|
2973 | :uri "http://some.where/ii-1")))) |
---|
2974 | (name-1 (jtm::import-construct-from-jtm-string |
---|
2975 | jtm-name-1 :revision 100 :jtm-format :1.1)) |
---|
2976 | (name-2 (jtm::import-construct-from-jtm-string |
---|
2977 | jtm-name-2 :revision 100 :jtm-format :1.0))) |
---|
2978 | (is-true (d:find-item-by-revision name-1 100 parent-1)) |
---|
2979 | (is-false (d:find-item-by-revision name-1 50 parent-1)) |
---|
2980 | (is (eql (parent name-1 :revision 0) parent-1)) |
---|
2981 | (is (eql (parent name-2 :revision 0) type-1)) |
---|
2982 | (is (string= (charvalue name-1) "name-1")) |
---|
2983 | (is (string= (charvalue name-2) "name-2")) |
---|
2984 | (is-false (set-exclusive-or |
---|
2985 | (map 'list #'d:uri (d:item-identifiers name-1 :revision 0)) |
---|
2986 | (list "http://some.where/ii-2") :test #'string=)) |
---|
2987 | (is-false (d:item-identifiers name-2 :revision 0)) |
---|
2988 | (is (eql (reifier name-1 :revision 0) reifier-1)) |
---|
2989 | (is-false (reifier name-2 :revision 0)) |
---|
2990 | (is-false (set-exclusive-or (themes name-1 :revision 0) (list scope-1))) |
---|
2991 | (is-false (themes name-2 :revision 0)) |
---|
2992 | (is (eql (instance-of name-1 :revision 0) type-1)) |
---|
2993 | (is (eql (instance-of name-2 :revision 0) type-2)) |
---|
2994 | (is-false (set-exclusive-or |
---|
2995 | (map 'list #'d:charvalue (variants name-1 :revision 0)) |
---|
2996 | (list "var-1" "var-2") :test #'string=)) |
---|
2997 | (is-false (variants name-2 :revision 0)) |
---|
2998 | (signals exceptions:JTM-error |
---|
2999 | (jtm::import-construct-from-jtm-string |
---|
3000 | jtm-name-3 :revision 100 :jtm-format :1.0)) |
---|
3001 | (signals exceptions:JTM-error |
---|
3002 | (jtm::import-construct-from-jtm-string |
---|
3003 | jtm-name-2 :revision 100 :jtm-format :1.1)) |
---|
3004 | (signals exceptions:JTM-error |
---|
3005 | (jtm::import-construct-from-jtm-string |
---|
3006 | jtm-name-1 :revision 100 :jtm-format :1.0))))) |
---|
3007 | |
---|
3008 | |
---|
3009 | (test test-import-from-jtm-1 |
---|
3010 | "Tests the functionimport-from-jtm." |
---|
3011 | (with-fixture with-empty-db ("data_base") |
---|
3012 | (make-construct 'TopicC :start-revision 100 |
---|
3013 | :psis |
---|
3014 | (list (make-construct 'PersistentIdC |
---|
3015 | :uri *topic-name-psi*))) |
---|
3016 | (jtm:import-from-jtm |
---|
3017 | (merge-pathnames |
---|
3018 | (asdf:component-pathname |
---|
3019 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
3020 | "jtm_1.1_test.jtm") |
---|
3021 | (merge-pathnames |
---|
3022 | (asdf:component-pathname constants:*isidorus-system*) |
---|
3023 | "data_base") |
---|
3024 | :tm-id "http://some.where/jtm/tm") |
---|
3025 | (base-tools:open-tm-store |
---|
3026 | (merge-pathnames |
---|
3027 | (asdf:component-pathname constants:*isidorus-system*) |
---|
3028 | "data_base")) |
---|
3029 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 43)) |
---|
3030 | (is (= (length (elephant:get-instances-by-class 'AssociationC)) 30)))) |
---|
3031 | |
---|
3032 | |
---|
3033 | (test test-import-from-jtm-2 |
---|
3034 | "Tests the functionimport-from-jtm." |
---|
3035 | (with-fixture with-empty-db ("data_base") |
---|
3036 | (make-construct 'TopicC :start-revision 100 |
---|
3037 | :psis |
---|
3038 | (list (make-construct 'PersistentIdC |
---|
3039 | :uri *topic-name-psi*))) |
---|
3040 | (jtm:import-from-jtm |
---|
3041 | (merge-pathnames |
---|
3042 | (asdf:component-pathname |
---|
3043 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
3044 | "jtm_1.0_test.jtm") |
---|
3045 | (merge-pathnames |
---|
3046 | (asdf:component-pathname constants:*isidorus-system*) |
---|
3047 | "data_base") |
---|
3048 | :jtm-format :1.0 |
---|
3049 | :tm-id "http://some.where/jtm/tm") |
---|
3050 | (base-tools:open-tm-store |
---|
3051 | (merge-pathnames |
---|
3052 | (asdf:component-pathname constants:*isidorus-system*) |
---|
3053 | "data_base")) |
---|
3054 | (is (= (length (elephant:get-instances-by-class 'TopicC)) 43)) |
---|
3055 | (is (= (length (elephant:get-instances-by-class 'AssociationC)) 30)))) |
---|
3056 | |
---|
3057 | |
---|
3058 | (test test-import-from-jtm-3 |
---|
3059 | "Tests the functionimport-from-jtm." |
---|
3060 | (with-fixture with-empty-db ("data_base") |
---|
3061 | (let ((jtm-path-2 |
---|
3062 | (merge-pathnames |
---|
3063 | (asdf:component-pathname |
---|
3064 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
3065 | "jtm_1.1_test.jtm")) |
---|
3066 | (jtm-path-1 |
---|
3067 | (merge-pathnames |
---|
3068 | (asdf:component-pathname |
---|
3069 | (asdf:find-component constants:*isidorus-system* "unit_tests")) |
---|
3070 | "jtm_1.0_test.jtm")) |
---|
3071 | (db-path |
---|
3072 | (merge-pathnames |
---|
3073 | (asdf:component-pathname constants:*isidorus-system*) |
---|
3074 | "data_base"))) |
---|
3075 | (signals exceptions::JTM-error |
---|
3076 | (jtm:import-from-jtm jtm-path-1 db-path :jtm-format :1.1 |
---|
3077 | :tm-id "http://some.where/tm-id")) |
---|
3078 | (signals T |
---|
3079 | (jtm:import-from-jtm jtm-path-1 db-path :jtm-format :1.0)) |
---|
3080 | (signals exceptions::JTM-error |
---|
3081 | (jtm:import-from-jtm jtm-path-2 db-path :jtm-format :1.0 |
---|
3082 | :tm-id "http://some.where/tm-id"))))) |
---|
3083 | |
---|
3084 | (defun run-jtm-tests() |
---|
3085 | "Runs all tests of this test-suite." |
---|
3086 | (it.bese.fiveam:run! 'jtm-tests)) |
---|