package com.mysema.rdfbean.jena;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.Locale;
import org.junit.Test;
import com.hp.hpl.jena.graph.Node;
import com.hp.hpl.jena.sparql.core.Quad;
import com.mysema.rdfbean.TEST;
import com.mysema.rdfbean.model.LIT;
import com.mysema.rdfbean.model.RDF;
import com.mysema.rdfbean.model.RDFS;
import com.mysema.rdfbean.model.XSD;
public class JenaDialectTest {
private JenaDialect dialect = new JenaDialect();
@Test
public void LocalizedLiteral() {
LIT lit = new LIT("X", Locale.ENGLISH);
Node literal = dialect.getLiteral(lit);
assertTrue(literal.isLiteral());
assertEquals("en", literal.getLiteralLanguage());
assertNull(literal.getLiteralDatatype());
assertEquals(lit, dialect.getLIT(literal));
}
@Test
public void TypedLiteral() {
LIT lit = new LIT("X", XSD.stringType);
Node literal = dialect.getLiteral(lit);
assertTrue(literal.isLiteral());
assertEquals("", literal.getLiteralLanguage());
assertEquals(XSD.stringType.getId(), literal.getLiteralDatatype().getURI());
assertEquals(lit, dialect.getLIT(literal));
}
@Test
public void Literal() {
LIT lit = new LIT("X", RDF.text);
Node literal = dialect.getLiteral(lit);
assertTrue(literal.isLiteral());
assertEquals("", literal.getLiteralLanguage());
assertNull(literal.getLiteralDatatype());
assertEquals(lit, dialect.getLIT(literal));
}
@Test
public void Statement_in_default_Graph() {
Node subject = Node.createURI(TEST.NS);
Node predicate = Node.createURI(RDFS.label.getId());
Node object = Node.createAnon();
Quad quad = dialect.createStatement(subject, predicate, object);
assertEquals(Quad.defaultGraphIRI, quad.getGraph());
}
@Test
public void Statement_in_named_Graph() {
Node subject = Node.createURI(TEST.NS);
Node predicate = Node.createURI(RDFS.label.getId());
Node object = Node.createAnon();
Node context = subject;
Quad quad = dialect.createStatement(subject, predicate, object, context);
assertEquals(context, quad.getGraph());
}
}