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.model.LIT;
import com.mysema.rdfbean.model.NODE;
import com.mysema.rdfbean.model.RDF;
public class SPARQLBindingsTest {
private final Map<String, NODE> bindings = new HashMap<String, NODE>();
private final List<NODE> nodes = new ArrayList<NODE>();
@Test
public void Resource_Binding() {
bindings.put("p", RDF.type);
String query = "select ?s ?p ?o where { ?s ?p ?o }";
assertEquals("select ?s iri(??) as ?p ?o where { ?s `iri(??)` ?o }", normalize(query));
}
@Test
public void Literal_Binding() {
bindings.put("o", new LIT("x"));
String query = "select ?s ?p ?o where { ?s ?p ?o }";
assertEquals("select ?s ?p bif:__rdf_long_from_batch_params(??,??,??) as ?o " +
"where { ?s ?p `bif:__rdf_long_from_batch_params(??,??,??)` }", normalize(query));
}
private String normalize(String query) {
return AbstractQueryImpl.normalize(query, bindings, nodes, true);
}
}