package com.mysema.rdfbean.model.io;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.junit.Test;
import com.mysema.rdfbean.TEST;
import com.mysema.rdfbean.model.BID;
import com.mysema.rdfbean.model.ID;
import com.mysema.rdfbean.model.LIT;
import com.mysema.rdfbean.model.RDF;
import com.mysema.rdfbean.model.STMT;
import com.mysema.rdfbean.model.UID;
import com.mysema.rdfbean.model.XSD;
public class SPARQLUpdateWriterTest {
private final SPARQLUpdateWriter writer = new SPARQLUpdateWriter(new UID(TEST.NS), false);
@Test
public void Handle() {
List<UID> predicates = new ArrayList<UID>(10);
for (int i = 0; i < 10; i++) {
predicates.add(new UID(TEST.NS, "pred" + i));
}
List<STMT> stmts = new ArrayList<STMT>(140);
for (int i = 0; i < 14; i++) {
ID sub = new UID(TEST.NS, "e" + UUID.randomUUID());
stmts.add(new STMT(sub, predicates.get(0), new LIT(UUID.randomUUID().toString())));
stmts.add(new STMT(sub, predicates.get(1), new LIT("1", XSD.intType)));
stmts.add(new STMT(sub, predicates.get(2), sub));
stmts.add(new STMT(sub, predicates.get(3), new BID()));
stmts.add(new STMT(sub, predicates.get(4), new LIT(UUID.randomUUID().toString())));
stmts.add(new STMT(sub, predicates.get(5), new LIT("2", XSD.intType)));
stmts.add(new STMT(sub, predicates.get(6), sub));
stmts.add(new STMT(sub, predicates.get(7), new BID()));
stmts.add(new STMT(sub, predicates.get(8), new LIT(UUID.randomUUID().toString())));
stmts.add(new STMT(sub, predicates.get(9), new LIT("3", XSD.intType)));
}
writer.begin();
for (STMT stmt : stmts) {
writer.handle(stmt);
}
writer.end();
// System.out.println(writer.toString());
String str = writer.toString();
assertTrue(str.contains(" ; ns1:pred1"));
assertTrue(str.contains("PREFIX ns1: <http://semantics.mysema.com/test#>"));
assertTrue(str.contains("PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>"));
assertTrue(str.contains("\"3\"^^xsd:int"));
}
@Test
public void RDFType_as_rdf_type() {
writer.begin();
writer.handle(new STMT(RDF.type, RDF.type, RDF.Property));
writer.end();
assertFalse(writer.toString().contains(" a "));
assertTrue(writer.toString().contains("rdf:type rdf:type"));
}
}