package org.xenei.jdbc4sparql.impl.rdf;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.xenei.jdbc4sparql.iface.Schema;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
public class SchemaBuilderTest {
private Model model;
private RdfTable.Builder tableBldr;
private RdfCatalog mockCatalog;
@Before
public void setUp() throws Exception {
model = ModelFactory.createDefaultModel();
final RdfTableDef.Builder builder = new RdfTableDef.Builder()
.addColumnDef(
RdfColumnDef.Builder.getStringBuilder().build(model))
.addColumnDef(
RdfColumnDef.Builder.getIntegerBuilder().build(model));
tableBldr = new RdfTable.Builder().setName("testTable")
.setTableDef(builder.build(model)).setColumn(0, "StringCol")
.setColumn(1, "IntCol");
mockCatalog = mock(RdfCatalog.class);
when(mockCatalog.getResource()).thenReturn(
model.createResource("http://example.com/mockCatalog"));
when(mockCatalog.getShortName()).thenReturn("mockCatalog");
}
@After
public void tearDown() throws Exception {
model.close();
}
@Test
public void testAddTable() throws Exception {
final RdfSchema.Builder builder = new RdfSchema.Builder().setName(
"schema").setCatalog(mockCatalog);
final RdfSchema schema = builder.build(model);
tableBldr.setSchema(schema).setType("test table").build(model);
schema.getTables();
Assert.assertEquals("schema", schema.getName().getShortName());
Assert.assertNotNull(schema.getTables());
Assert.assertEquals(1, schema.getTables().size());
}
@Test
public void testAddTableTableRead() {
final RdfSchema.Builder builder = new RdfSchema.Builder().setName(
"schema").setCatalog(mockCatalog);
final RdfSchema schema = builder.build(model);
Assert.assertEquals(0, schema.getTables().size());
tableBldr.setSchema(schema).setType("Test table").build(model);
Assert.assertEquals("schema", schema.getName().getShortName());
Assert.assertNotNull(schema.getTables());
Assert.assertEquals(1, schema.getTables().size());
}
@Test
public void testDefault() {
final RdfSchema.Builder builder = new RdfSchema.Builder().setName(
"schema").setCatalog(mockCatalog);
final Schema schema = builder.build(model);
schema.getTables();
Assert.assertEquals("schema", schema.getName().getShortName());
Assert.assertNotNull(schema.getTables());
Assert.assertEquals(0, schema.getTables().size());
}
}