package com.mysema.rdfbean.jena;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import com.mysema.rdfbean.TEST;
import com.mysema.rdfbean.model.Addition;
import com.mysema.rdfbean.model.BID;
import com.mysema.rdfbean.model.CountOperation;
import com.mysema.rdfbean.model.Format;
import com.mysema.rdfbean.model.RDFConnectionCallback;
import com.mysema.rdfbean.model.RDF;
import com.mysema.rdfbean.model.RDFS;
import com.mysema.rdfbean.model.STMT;
import com.mysema.rdfbean.model.UID;
public class LoadTest {
private RDFConnectionCallback<Long> countOp = new CountOperation();
private MemoryRepository repository;
@Before
public void setUp() {
repository = new MemoryRepository();
repository.addGraph(new UID(TEST.NS));
repository.initialize();
}
@After
public void tearDown() {
repository.close();
}
@Test
public void Export_and_Load() {
InputStream is = getClass().getResourceAsStream("/test.ttl");
UID context = new UID(TEST.NS);
repository.load(Format.TURTLE, is, context, true);
long count1 = repository.execute(countOp);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
repository.export(Format.TURTLE, null, baos);
MemoryRepository repository2 = new MemoryRepository();
repository2.addGraph(new UID(TEST.NS));
repository2.initialize();
repository2.load(Format.TURTLE, new ByteArrayInputStream(baos.toByteArray()), new UID(TEST.NS), true);
long count2 = repository.execute(countOp);
repository2.close();
assertEquals(count1, count2);
}
@Test
@Ignore
public void Load_withContext_replace() {
InputStream is = getClass().getResourceAsStream("/test.ttl");
UID context = new UID(TEST.NS);
repository.load(Format.TURTLE, is, context, true);
long count1 = repository.execute(countOp);
repository.execute(new Addition(new STMT(new BID(), RDF.type, RDFS.Resource, context)));
// reload with replace
is = getClass().getResourceAsStream("/test.ttl");
repository.load(Format.TURTLE, is, context, true);
assertEquals(count1, repository.execute(countOp).longValue());
}
@Test
@Ignore
public void Load_withContext_withoutReplace() {
InputStream is = getClass().getResourceAsStream("/test.ttl");
UID context = new UID(TEST.NS);
repository.load(Format.TURTLE, is, context, false);
long count1 = repository.execute(countOp);
repository.execute(new Addition(new STMT(new BID(), RDF.type, RDFS.Resource, context)));
// reload without replace
is = getClass().getResourceAsStream("/test.ttl");
repository.load(Format.TURTLE, is, context, false);
assertEquals(count1 + 1, repository.execute(countOp).longValue());
}
@Test
public void Load_withoutContext() {
InputStream is = getClass().getResourceAsStream("/test.ttl");
repository.load(Format.TURTLE, is, null, false);
assertTrue(repository.execute(countOp) > 0);
}
}