package com.mysema.rdfbean.virtuoso; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Test; import com.mysema.rdfbean.TEST; import com.mysema.rdfbean.model.DC; import com.mysema.rdfbean.model.NODE; import com.mysema.rdfbean.model.RDF; import com.mysema.rdfbean.model.RDFS; import com.mysema.rdfbean.model.SKOS; import com.mysema.rdfbean.model.UID; public class AbstractQueryImplTest { @Test public void Normalize() { String queryString = "SELECT * WHERE {\n" + "?dimensionType ?_c2 ?_c3 ; ?_c4 ?dimensionTypeName .\n" + "?dimension ?_c7 ?dimensionType ; ?_c4 ?dimensionName .\n" + "OPTIONAL {?dimension ?_c9 ?dimensionDescription }\n" + "OPTIONAL {?dimension ?_c11 ?parent }\n" + "}\n" + "ORDER BY ?dimensionName"; Map<String, NODE> bindings = new HashMap<String, NODE>(); bindings.put("_c9", DC.description); bindings.put("_c2", RDFS.subClassOf); bindings.put("_c11", SKOS.broader); bindings.put("_c7", RDF.type); bindings.put("_c4", DC.title); bindings.put("_c3", new UID(TEST.NS, "Dimension")); List<NODE> nodes = new ArrayList<NODE>(); String modifiedQuery = AbstractQueryImpl.normalize(queryString, bindings, nodes, true); System.err.println(modifiedQuery); assertEquals(bindings.get("_c2"), nodes.get(0)); assertEquals(bindings.get("_c3"), nodes.get(1)); assertEquals(bindings.get("_c4"), nodes.get(2)); assertEquals(bindings.get("_c7"), nodes.get(3)); assertEquals(bindings.get("_c4"), nodes.get(4)); assertEquals(bindings.get("_c9"), nodes.get(5)); assertEquals(bindings.get("_c11"), nodes.get(6)); } }