KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > hp > hpl > jena > ontology > impl > test > TestListSyntaxCategories


1 /*****************************************************************************
2  * Source code information
3  * -----------------------
4  * Original author Ian Dickinson, HP Labs Bristol
5  * Author email Ian.Dickinson@hp.com
6  * Package Jena 2
7  * Web http://sourceforge.net/projects/jena/
8  * Created 02-Apr-2003
9  * Filename $RCSfile: TestListSyntaxCategories.java,v $
10  * Revision $Revision: 1.24 $
11  * Release status $State: Exp $
12  *
13  * Last modified on $Date: 2005/04/06 23:04:51 $
14  * by $Author: ian_dickinson $
15  *
16  * (c) Copyright 2002, 2003, 2004, 2005 Hewlett-Packard Development Company, LP
17  * (see footer for full conditions)
18  *****************************************************************************/

19
20 // Package
21
///////////////
22
package com.hp.hpl.jena.ontology.impl.test;
23
24
25 // Imports
26
///////////////
27
import com.hp.hpl.jena.rdf.model.*;
28 import com.hp.hpl.jena.ontology.*;
29 import com.hp.hpl.jena.vocabulary.*;
30
31 import junit.framework.*;
32
33 import java.util.*;
34
35 import org.apache.commons.logging.Log;
36 import org.apache.commons.logging.LogFactory;
37
38
39
40 /**
41  * <p>
42  * Unit tests for listXXX methods on ontmodel
43  * </p>
44  *
45  * @author Ian Dickinson, HP Labs
46  * (<a HREF="mailto:Ian.Dickinson@hp.com" >email</a>)
47  * @version CVS $Id: TestListSyntaxCategories.java,v 1.24 2005/04/06 23:04:51 ian_dickinson Exp $
48  */

49 public class TestListSyntaxCategories
50     extends TestCase
51 {
52     // Constants
53
//////////////////////////////////
54
public static final String JavaDoc NS = "http://jena.hpl.hp.com/testing/ontology#";
55
56
57     // Static variables
58
//////////////////////////////////
59

60     protected static DoListTest[] testCases = {
61         // Ontology
62
new DoListTest( "OWL list ontologies", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
63                         new String JavaDoc[] {"http://jena.hpl.hp.com/testing/ontology"} )
64         {
65             public Iterator doList( OntModel m ) {
66                 return m.listOntologies();
67             }
68             public boolean test( Resource r ) {
69                 return r instanceof Ontology;
70             }
71         },
72         new DoListTest( "DAML list ontologies", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 1,
73                         new String JavaDoc[] {"http://jena.hpl.hp.com/testing/ontology"} )
74         {
75             public Iterator doList( OntModel m ) {
76                 return m.listOntologies();
77             }
78             public boolean test( Resource r ) {
79                 return r instanceof Ontology;
80             }
81         },
82         // Properties
83
new DoListTest( "OWL list properties", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
84                         new String JavaDoc[] {NS+"p"} )
85         {
86             public Iterator doList( OntModel m ) {
87                 return m.listOntProperties();
88             }
89             public boolean test( Resource r ) {
90                 return r instanceof OntProperty &&
91                        r instanceof Property;
92             }
93         },
94         new DoListTest( "OWL list object properties", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 2,
95                         new String JavaDoc[] {NS+"op", NS+"op1"} )
96         {
97             public Iterator doList( OntModel m ) {
98                 return m.listObjectProperties();
99             }
100             public boolean test( Resource r ) {
101                 return r instanceof OntProperty &&
102                        r instanceof Property;
103             }
104         },
105         new DoListTest( "OWL list datatype properties", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
106                         new String JavaDoc[] {NS+"dp"} )
107         {
108             public Iterator doList( OntModel m ) {
109                 return m.listDatatypeProperties();
110             }
111             public boolean test( Resource r ) {
112                 return r instanceof OntProperty &&
113                        r instanceof Property;
114             }
115         },
116         new DoListTest( "OWL list functional properties", "file:testing/ontology/owl/list-syntax/test-proptypes.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
117                         new String JavaDoc[] {NS+"fp"} )
118         {
119             public Iterator doList( OntModel m ) {
120                 return m.listFunctionalProperties();
121             }
122             public boolean test( Resource r ) {
123                 return r instanceof OntProperty &&
124                        r instanceof FunctionalProperty &&
125                        r instanceof Property;
126             }
127         },
128         new DoListTest( "OWL list transitive properties", "file:testing/ontology/owl/list-syntax/test-proptypes.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
129                         new String JavaDoc[] {NS+"tp"} )
130         {
131             public Iterator doList( OntModel m ) {
132                 return m.listTransitiveProperties();
133             }
134             public boolean test( Resource r ) {
135                 return r instanceof OntProperty &&
136                        r instanceof TransitiveProperty &&
137                        r instanceof Property;
138             }
139         },
140         new DoListTest( "OWL list symmetric properties", "file:testing/ontology/owl/list-syntax/test-proptypes.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
141                         new String JavaDoc[] {NS+"sp"} )
142         {
143             public Iterator doList( OntModel m ) {
144                 return m.listSymmetricProperties();
145             }
146             public boolean test( Resource r ) {
147                 return r instanceof OntProperty &&
148                        r instanceof SymmetricProperty &&
149                        r instanceof Property;
150             }
151         },
152         new DoListTest( "OWL list inverse functional properties", "file:testing/ontology/owl/list-syntax/test-proptypes.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
153                         new String JavaDoc[] {NS+"ifp"} )
154         {
155             public Iterator doList( OntModel m ) {
156                 return m.listInverseFunctionalProperties();
157             }
158             public boolean test( Resource r ) {
159                 return r instanceof OntProperty &&
160                        r instanceof InverseFunctionalProperty &&
161                        r instanceof Property;
162             }
163         },
164         new DoListTest( "DAML list properties", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 5,
165                         new String JavaDoc[] {NS+"p", NS+"rdf-p", NS+"dp", NS+"op", NS+"op1"} )
166         {
167             public Iterator doList( OntModel m ) {
168                 return m.listOntProperties();
169             }
170             public boolean test( Resource r ) {
171                 return r instanceof OntProperty &&
172                        r instanceof Property;
173             }
174         },
175         new DoListTest( "DAML list object properties", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 2,
176                         new String JavaDoc[] {NS+"op", NS+"op1"} )
177         {
178             public Iterator doList( OntModel m ) {
179                 return m.listObjectProperties();
180             }
181             public boolean test( Resource r ) {
182                 return r instanceof OntProperty &&
183                        r instanceof Property;
184             }
185         },
186         new DoListTest( "DAML list datatype properties", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 1,
187                         new String JavaDoc[] {NS+"dp"} )
188         {
189             public Iterator doList( OntModel m ) {
190                 return m.listDatatypeProperties();
191             }
192             public boolean test( Resource r ) {
193                 return r instanceof OntProperty &&
194                        r instanceof Property;
195             }
196         },
197         new DoListTest( "DAML list functional properties", "file:testing/ontology/daml/list-syntax/test-proptypes.rdf", OntModelSpec.DAML_MEM_RULE_INF, 1,
198                         new String JavaDoc[] {NS+"fp"} )
199         {
200             public Iterator doList( OntModel m ) {
201                 return m.listFunctionalProperties();
202             }
203             public boolean test( Resource r ) {
204                 return r instanceof OntProperty &&
205                        r instanceof FunctionalProperty &&
206                        r instanceof Property;
207             }
208         },
209         new DoListTest( "DAML list transitive properties", "file:testing/ontology/daml/list-syntax/test-proptypes.rdf", OntModelSpec.DAML_MEM_RULE_INF, 1,
210                         new String JavaDoc[] {NS+"tp"} )
211         {
212             public Iterator doList( OntModel m ) {
213                 return m.listTransitiveProperties();
214             }
215             public boolean test( Resource r ) {
216                 return r instanceof OntProperty &&
217                        r instanceof TransitiveProperty &&
218                        r instanceof Property;
219             }
220         },
221         new DoListTest( "DAML list inverse functional properties", "file:testing/ontology/daml/list-syntax/test-proptypes.rdf", OntModelSpec.DAML_MEM_RULE_INF, 1,
222                         new String JavaDoc[] {NS+"ifp"} )
223         {
224             public Iterator doList( OntModel m ) {
225                 return m.listInverseFunctionalProperties();
226             }
227             public boolean test( Resource r ) {
228                 return r instanceof OntProperty &&
229                        r instanceof InverseFunctionalProperty &&
230                        r instanceof Property;
231             }
232         },
233
234         // individuals
235
new DoListTest( "OWL list individuals", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 8,
236                         new String JavaDoc[] {NS+"A0", NS+"A1", NS+"C0", NS+"a0", NS+"a1", NS+"a2", NS+"z0", NS+"z1"} )
237         {
238             public Iterator doList( OntModel m ) {
239                 return m.listIndividuals();
240             }
241             public boolean test( Resource r ) {
242                 return r instanceof Individual;
243             }
244         },
245         new DoListTest( "empty OWL list individuals", null, OntModelSpec.OWL_MEM, 0, new String JavaDoc[] {} )
246         {
247             public Iterator doList( OntModel m ) {
248                 return m.listIndividuals();
249             }
250             public boolean test( Resource r ) {
251                 return r instanceof Individual;
252             }
253         },
254         new DoListTest( "empty OWL+rule list individuals", null, OntModelSpec.OWL_MEM_RULE_INF, 0, new String JavaDoc[] {} )
255         {
256             public Iterator doList( OntModel m ) {
257                 return m.listIndividuals();
258             }
259             public boolean test( Resource r ) {
260                 return r instanceof Individual;
261             }
262         },
263         new DoListTest( "DAML list individuals", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 6,
264                         new String JavaDoc[] {NS+"A0", NS+"A1", NS+"C0", NS+"a1", NS+"a2", NS+"a0"} )
265         {
266             public Iterator doList( OntModel m ) {
267                 return m.listIndividuals();
268             }
269             public boolean test( Resource r ) {
270                 return r instanceof Individual;
271             }
272         },
273         new DoListTest( "empty DAML+rule list individuals", null, OntModelSpec.DAML_MEM_RULE_INF, 0, new String JavaDoc[] {} )
274         {
275             public Iterator doList( OntModel m ) {
276                 return m.listIndividuals();
277             }
278             public boolean test( Resource r ) {
279                 return r instanceof Individual;
280             }
281         },
282
283         new DoListTest( "OWL list all different", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
284                         null )
285         {
286             public Iterator doList( OntModel m ) {
287                 return m.listAllDifferent();
288             }
289             public boolean test( Resource r ) {
290                 return r instanceof AllDifferent;
291             }
292         },
293         new DoListTest( "DAML list all different", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 0, null,
294                         true /* exception expected */ )
295         {
296             public Iterator doList( OntModel m ) {
297                 return m.listAllDifferent();
298             }
299             public boolean test( Resource r ) {
300                 return r instanceof AllDifferent;
301             }
302         },
303
304         // classes
305
new DoListTest( "OWL list classes", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 11,
306                         new String JavaDoc[] {NS+"A", NS+"B", NS+"C", NS+"D", NS+"E", NS+"X0", NS+"X1", NS+"Y0", NS+"Y1", NS+"Z", } )
307         {
308             public Iterator doList( OntModel m ) {
309                 return m.listClasses();
310             }
311             public boolean test( Resource r ) {
312                 return r instanceof OntClass;
313             }
314         },
315         new DoListTest( "OWL list named classes", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 10,
316                         new String JavaDoc[] {NS+"A", NS+"B", NS+"C", NS+"D", NS+"E", NS+"X0", NS+"X1", NS+"Y0", NS+"Y1", NS+"Z", } )
317         {
318             public Iterator doList( OntModel m ) {
319                 return m.listNamedClasses();
320             }
321             public boolean test( Resource r ) {
322                 return r instanceof OntClass;
323             }
324         },
325         new DoListTest( "OWL list intersection classes", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
326                         new String JavaDoc[] {NS+"A" } )
327         {
328             public Iterator doList( OntModel m ) {
329                 return m.listIntersectionClasses();
330             }
331             public boolean test( Resource r ) {
332                 return r instanceof OntClass;
333             }
334         },
335         new DoListTest( "OWL list union classes", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
336                         new String JavaDoc[] {NS+"B"} )
337         {
338             public Iterator doList( OntModel m ) {
339                 return m.listUnionClasses();
340             }
341             public boolean test( Resource r ) {
342                 return r instanceof OntClass;
343             }
344         },
345         new DoListTest( "OWL list complement classes", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
346                         new String JavaDoc[] {NS+"C"} )
347         {
348             public Iterator doList( OntModel m ) {
349                 return m.listComplementClasses();
350             }
351             public boolean test( Resource r ) {
352                 return r instanceof OntClass;
353             }
354         },
355         new DoListTest( "OWL list enumerated classes", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
356                         new String JavaDoc[] {NS+"D"} )
357         {
358             public Iterator doList( OntModel m ) {
359                 return m.listEnumeratedClasses();
360             }
361             public boolean test( Resource r ) {
362                 return r instanceof OntClass;
363             }
364         },
365         new DoListTest( "OWL list restrictions", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
366                         null )
367         {
368             public Iterator doList( OntModel m ) {
369                 return m.listRestrictions();
370             }
371             public boolean test( Resource r ) {
372                 return r instanceof Restriction;
373             }
374         },
375         new DoListTest( "DAML list classes", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 12,
376                         new String JavaDoc[] {NS+"A", NS+"B", NS+"C", NS+"D", NS+"E", NS+"X0", NS+"X1", NS+"Y0", NS+"Y1", NS+"Z", DAML_OIL.Thing.getURI()} )
377         {
378             public Iterator doList( OntModel m ) {
379                 return m.listClasses();
380             }
381             public boolean test( Resource r ) {
382                 return r instanceof OntClass;
383             }
384         },
385         new DoListTest( "DAML list named classes", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 11,
386                         new String JavaDoc[] {NS+"A", NS+"B", NS+"C", NS+"D", NS+"E", NS+"X0", NS+"X1", NS+"Y0", NS+"Y1", NS+"Z", DAML_OIL.Thing.getURI()} )
387         {
388             public Iterator doList( OntModel m ) {
389                 return m.listNamedClasses();
390             }
391             public boolean test( Resource r ) {
392                 return r instanceof OntClass;
393             }
394         },
395         new DoListTest( "DAML list intersection classes", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 1,
396                         new String JavaDoc[] {NS+"A" } )
397         {
398             public Iterator doList( OntModel m ) {
399                 return m.listIntersectionClasses();
400             }
401             public boolean test( Resource r ) {
402                 return r instanceof OntClass;
403             }
404         },
405         new DoListTest( "DAML list union classes", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 1,
406                         new String JavaDoc[] {NS+"B"} )
407         {
408             public Iterator doList( OntModel m ) {
409                 return m.listUnionClasses();
410             }
411             public boolean test( Resource r ) {
412                 return r instanceof OntClass;
413             }
414         },
415         new DoListTest( "DAML list complement classes", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 1,
416                         new String JavaDoc[] {NS+"C"} )
417         {
418             public Iterator doList( OntModel m ) {
419                 return m.listComplementClasses();
420             }
421             public boolean test( Resource r ) {
422                 return r instanceof OntClass;
423             }
424         },
425         new DoListTest( "DAML list enumerated classes", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 1,
426                         new String JavaDoc[] {NS+"D"} )
427         {
428             public Iterator doList( OntModel m ) {
429                 return m.listEnumeratedClasses();
430             }
431             public boolean test( Resource r ) {
432                 return r instanceof OntClass;
433             }
434         },
435         new DoListTest( "DAML list restrictions", "file:testing/ontology/daml/list-syntax/test.rdf", OntModelSpec.DAML_MEM_RULE_INF, 1,
436                         null )
437         {
438             public Iterator doList( OntModel m ) {
439                 return m.listRestrictions();
440             }
441             public boolean test( Resource r ) {
442                 return r instanceof Restriction;
443             }
444         },
445
446         // Annotation property
447
new DoListTest( "OWL list annotation properties", "file:testing/ontology/owl/list-syntax/test.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 6,
448                         null )
449         {
450             public Iterator doList( OntModel m ) {
451                 return m.listAnnotationProperties();
452             }
453             public boolean test( Resource r ) {
454                 return r instanceof AnnotationProperty;
455             }
456         },
457
458         // !!!!!!! Following tests use ontology that imports owl.owl !!!!!!!!!!!
459

460         // ontologies
461
new DoListTest( "OWL+import list ontologies", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 2,
462                         new String JavaDoc[] {"http://jena.hpl.hp.com/testing/ontology", "http://www.w3.org/2002/07/owl"} )
463         {
464             public Iterator doList( OntModel m ) {
465                 return m.listOntologies();
466             }
467             public boolean test( Resource r ) {
468                 return r instanceof Ontology;
469             }
470         },
471         // Properties
472
new DoListTest( "OWL+import list properties", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 40,
473                         null )
474         {
475             public Iterator doList( OntModel m ) {
476                 return m.listOntProperties();
477             }
478             public boolean test( Resource r ) {
479                 return r instanceof OntProperty &&
480                        r instanceof Property;
481             }
482         },
483         new DoListTest( "OWL+import list object properties", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 2,
484                         new String JavaDoc[] {NS+"op", NS+"op1"} )
485         {
486             public Iterator doList( OntModel m ) {
487                 return m.listObjectProperties();
488             }
489             public boolean test( Resource r ) {
490                 return r instanceof OntProperty &&
491                        r instanceof Property;
492             }
493         },
494         new DoListTest( "OWL+import list datatype properties", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
495                         new String JavaDoc[] {NS+"dp"} )
496         {
497             public Iterator doList( OntModel m ) {
498                 return m.listDatatypeProperties();
499             }
500             public boolean test( Resource r ) {
501                 return r instanceof OntProperty &&
502                        r instanceof Property;
503             }
504         },
505
506         // individuals
507
new DoListTest( "OWL+import list individuals", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 8,
508                         null )
509         {
510             public Iterator doList( OntModel m ) {
511                 return m.listIndividuals();
512             }
513             public boolean test( Resource r ) {
514                 return r instanceof Individual;
515             }
516         },
517
518         new DoListTest( "OWL+import list all different", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
519                         null )
520         {
521             public Iterator doList( OntModel m ) {
522                 return m.listAllDifferent();
523             }
524             public boolean test( Resource r ) {
525                 return r instanceof AllDifferent;
526             }
527         },
528
529         // classes
530
new DoListTest( "OWL+import list classes", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 14,
531                         null )
532         {
533             public Iterator doList( OntModel m ) {
534                 return m.listClasses();
535             }
536             public boolean test( Resource r ) {
537                 return r instanceof OntClass;
538             }
539         },
540         new DoListTest( "OWL+import list named classes", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 12,
541                         new String JavaDoc[] {NS+"A", NS+"B", NS+"C", NS+"D", NS+"E", NS+"X0", NS+"X1", NS+"Y0", NS+"Y1", NS+"Z",
542                                       OWL.Thing.getURI(), OWL.Nothing.getURI()} )
543         {
544             public Iterator doList( OntModel m ) {
545                 return m.listNamedClasses();
546             }
547             public boolean test( Resource r ) {
548                 return r instanceof OntClass;
549             }
550         },
551         new DoListTest( "OWL+import list intersection classes", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
552                         new String JavaDoc[] {NS+"A" } )
553         {
554             public Iterator doList( OntModel m ) {
555                 return m.listIntersectionClasses();
556             }
557             public boolean test( Resource r ) {
558                 return r instanceof OntClass;
559             }
560         },
561         new DoListTest( "OWL+import list union classes", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 2,
562                         new String JavaDoc[] {NS+"B", OWL.Thing.getURI()} )
563         {
564             public Iterator doList( OntModel m ) {
565                 return m.listUnionClasses();
566             }
567             public boolean test( Resource r ) {
568                 return r instanceof OntClass;
569             }
570         },
571         new DoListTest( "OWL+import list complement classes", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 3,
572                         null )
573         {
574             public Iterator doList( OntModel m ) {
575                 return m.listComplementClasses();
576             }
577             public boolean test( Resource r ) {
578                 return r instanceof OntClass;
579             }
580         },
581         new DoListTest( "OWL+import list enumerated classes", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
582                         new String JavaDoc[] {NS+"D"} )
583         {
584             public Iterator doList( OntModel m ) {
585                 return m.listEnumeratedClasses();
586             }
587             public boolean test( Resource r ) {
588                 return r instanceof OntClass;
589             }
590         },
591         new DoListTest( "OWL+import list restrictions", "file:testing/ontology/owl/list-syntax/test-with-import.rdf", OntModelSpec.OWL_MEM_TRANS_INF, 1,
592                         null )
593         {
594             public Iterator doList( OntModel m ) {
595                 return m.listRestrictions();
596             }
597             public boolean test( Resource r ) {
598                 return r instanceof Restriction;
599             }
600         },
601     };
602
603
604     // Instance variables
605
//////////////////////////////////
606

607     // Constructors
608
//////////////////////////////////
609

610     public TestListSyntaxCategories( String JavaDoc name ) {
611         super( name );
612     }
613
614
615
616     // External signature methods
617
//////////////////////////////////
618

619     public static TestSuite suite() {
620         TestSuite s = new TestSuite( "TestListSyntaxCategories" );
621
622         for (int i = 0; i < testCases.length; i++) {
623             s.addTest( testCases[i] );
624         }
625
626         return s;
627     }
628
629
630     // Internal implementation methods
631
//////////////////////////////////
632

633     //==============================================================================
634
// Inner class definitions
635
//==============================================================================
636

637     protected static class DoListTest
638         extends TestCase
639     {
640         protected String JavaDoc m_fileName;
641         protected OntModelSpec m_spec;
642         protected int m_count;
643         protected String JavaDoc[] m_expected;
644         protected boolean m_exExpected; // exception expected during list operation
645

646         protected DoListTest( String JavaDoc name, String JavaDoc fileName, OntModelSpec spec, int count, String JavaDoc[] expected ) {
647             this( name, fileName, spec, count, expected, false );
648         }
649
650         protected DoListTest( String JavaDoc name, String JavaDoc fileName, OntModelSpec spec, int count, String JavaDoc[] expected, boolean exExpected ) {
651             super( name );
652             m_fileName = fileName;
653             m_spec = spec;
654             m_count = count;
655             m_expected = expected;
656             m_exExpected = exExpected;
657         }
658
659         public void setUp() {
660             // ensure the ont doc manager is in a consistent state
661
OntDocumentManager.getInstance().reset( true );
662         }
663
664
665         public void runTest() {
666             OntModel m = ModelFactory.createOntologyModel( m_spec, null );
667             m.getDocumentManager().setMetadataSearchPath( "file:etc/ont-policy-test.rdf", true );
668
669             if (m_fileName != null) {
670                 m.read( m_fileName );
671             }
672
673             boolean exOccurred = false;
674             Iterator i = null;
675             try {
676                 i = doList( m );
677             }
678             catch (OntologyException e) {
679                 exOccurred = true;
680             }
681
682             assertEquals( "Ontology exception" + (m_exExpected ? " was " : " was not ") + "expected", m_exExpected, exOccurred );
683
684             if (!exOccurred) {
685                 List expected = expected( m );
686                 List actual = new ArrayList();
687                 int extraneous = 0;
688
689                 // now we walk the iterator
690
while (i.hasNext()) {
691                     Resource res = (Resource) i.next();
692                     assertTrue( "Should not fail node test on " + res, test( res ));
693
694                     actual.add( res );
695                     if (expected != null) {
696                         if (expected.contains( res )) {
697                             expected.remove( res );
698                         }
699                         else {
700                             if (!res.isAnon()) {
701                                 // since we can't list expected anon resources, we ignore them in this check
702
extraneous++;
703                             }
704                         }
705                     }
706                 }
707
708                 // debugging
709
if (m_count != actual.size()) {
710                     Log logger = LogFactory.getLog( getClass() );
711                     logger.debug( getName() + " - expected " + m_count + " results, actual = " + actual.size() );
712                     for (Iterator j = actual.iterator(); j.hasNext(); ) {
713                         logger.debug( getName() + " - saw actual: " + j.next() );
714                     }
715                 }
716                 if (expected != null && !expected.isEmpty()) {
717                     Log logger = LogFactory.getLog( getClass() );
718                     for (Iterator j = expected.iterator(); j.hasNext(); ) {
719                         logger.debug( getName() + " - expected but did not find: " + j.next() );
720                     }
721                 }
722
723                 assertEquals( getName() + ": wrong number of results returned", m_count, actual.size() );
724                 if (expected != null) {
725                     assertTrue( "Did not find all expected resources in iterator", expected.isEmpty() );
726                     assertEquals( "Found extraneous results, not in expected list", 0, extraneous );
727                 }
728             }
729         }
730
731         /* get the iterator */
732         public Iterator doList( OntModel m ) {
733             // should be overriden in sub-classes
734
return null;
735         }
736
737         /* test the Java type of the result, and other tests */
738         public boolean test( Resource r ) {
739             return true;
740         }
741
742         protected List expected( OntModel m ) {
743             if (m_expected != null) {
744                 List expected = new ArrayList();
745
746                 for (int i = 0; i < m_expected.length; i++) {
747                     expected.add( m.getResource( m_expected[i] ) );
748                 }
749
750                 return expected;
751             }
752             else {
753                 return null;
754             }
755         }
756     }
757 }
758
759
760 /*
761     (c) Copyright 2002, 2003, 2004, 2005 Hewlett-Packard Development Company, LP
762     All rights reserved.
763
764     Redistribution and use in source and binary forms, with or without
765     modification, are permitted provided that the following conditions
766     are met:
767
768     1. Redistributions of source code must retain the above copyright
769        notice, this list of conditions and the following disclaimer.
770
771     2. Redistributions in binary form must reproduce the above copyright
772        notice, this list of conditions and the following disclaimer in the
773        documentation and/or other materials provided with the distribution.
774
775     3. The name of the author may not be used to endorse or promote products
776        derived from this software without specific prior written permission.
777
778     THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
779     IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
780     OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
781     IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
782     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
783     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
784     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
785     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
786     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
787     THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
788 */

789
Popular Tags