1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package test.wsmo4j.serializer.wsml;
19
20 import java.util.HashMap;
21 import java.util.Map;
22
23 import junit.framework.*;
24
25 import org.deri.wsmo4j.common.ClearTopEntity;
26 import org.omwg.logicalexpression.*;
27 import org.omwg.ontology.*;
28 import org.wsmo.common.*;
29 import org.wsmo.factory.*;
30 import org.wsmo.wsml.*;
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 public class WSMLSerializeTest extends TestCase {
46
47 private Parser parser = Factory.createParser(null);
48
49 private Serializer serializer = Factory.createSerializer(null);;
50
51 private WsmoFactory factory = Factory.createWsmoFactory(null);
52 private LogicalExpressionFactory leFactory = Factory.createLogicalExpressionFactory(null);
53
54 private static final String DEFAULT_NS = "http://ex.org#";
55
56 private String getOntologyHeader() {
57 return "namespace {_\"" + DEFAULT_NS + "\", \n"
58 + "ex _\"http://somewhere.com/\"} \n" + "ontology myOnt12"
59 + System.currentTimeMillis() + " \n\n";
60 }
61
62 public void testSameLESerialization() throws Exception{
63 Map <String, Object> m = new HashMap <String, Object> ();
64 m.put(Parser.CACHE_LOGICALEXPRESSION_STRING, "true");
65 parser = Factory.createParser(m);
66
67 String exp = "namespace {a _\"foo:bar#\" , _\"foo:bar#\"} \n" +
68 " ontology a \n" +
69 " //definedBy \n" +
70 " /* \\*/" +
71 " " +
72 " axiom a definedBy \n" +
73 " a#a implies b and c. c :- d.\n" +
74 " axiom e definedBy a. \n" +
75 " webService w\n" +
76 " capability c postcondition f definedBy \n" +
77 " a:-c.\n" +
78 " ";
79 String test = getOntologyHeader() + "axiom a definedBy " + exp;
80
81 TopEntity[] te = parser.parse(new StringBuffer(exp));
82 StringBuffer out = new StringBuffer();
83 Ontology o = (Ontology)te[0];
84 Axiom a = o.listAxioms().iterator().next();
85 LogicalExpression le = a.listDefinitions().iterator().next();
86 assertEquals("a#a implies b and c.", le.toString(o));
87 o.removeNamespace("a");
88
89 assertFalse("a#a implies b and c.".equals(le.toString(o)));
90 }
91
92
93
94
95
96 public void testStableIRI() throws Exception{
97 String test = "namespace {_\"urn:foo\"} " +
98 " ontology a concept bar ";
99
100 Ontology ont = (Ontology)parser.parse(new StringBuffer(test))[0];
101 StringBuffer out = new StringBuffer();
102 serializer.serialize(new TopEntity[]{ont}, out);
103 ClearTopEntity.clearTopEntity(ont);
104 ont = (Ontology)parser.parse(out)[0];
105 assertEquals(factory.createIRI("urn:foobar"),
106 ont.listConcepts().iterator().next().getIdentifier());
107 }
108
109 public void testInvalidSQNameChars() throws Exception {
110 String test = "namespace {_\"" + DEFAULT_NS + "\"} " +
111 " ontology example concept conA concept _\"http://ex.org#con%20B\"";
112
113 Ontology ont = (Ontology)parser.parse(new StringBuffer(test))[0];
114 ont.addConcept(factory.createConcept(factory.createIRI(DEFAULT_NS + "concept%20C")));
115 StringBuffer out = new StringBuffer();
116 serializer.serialize(new TopEntity[]{ont}, out);
117
118 }
119
120 }