package com.ontology2.bakemono.primitiveTriples;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import com.ontology2.bakemono.primitiveTriples.PrimitiveTriple;
import com.ontology2.bakemono.primitiveTriples.PrimitiveTripleCodec;
public class TestPrimitiveTripleCodec {
private PrimitiveTripleCodec codec;
@Before
public void setup() {
codec=new PrimitiveTripleCodec();
}
final static String X="<http://example.com/X>";
final static String Y="<http://example.com/Y>";
final static String Z="<http://example.com/Z>";
final static String L1="88712";
final static String L2="\"all is well that ends well\"";
@Test
public void parsesALinkTriple() {
String in=X+" "+Y+"\t"+Z+".";
PrimitiveTriple out=codec.decode(in);
assertEquals(X,out.getSubject());
assertEquals(Y,out.getPredicate());
assertEquals(Z,out.getObject());
}
@Test
public void parsesASingleSpaceTriple() {
String in=X+" "+Y+" "+Z+" .";
PrimitiveTriple out=codec.decode(in);
assertEquals(X,out.getSubject());
assertEquals(Y,out.getPredicate());
assertEquals(Z,out.getObject());
}
@Test
public void parsesATabbyTriple() {
String in=X+"\t"+Y+"\t "+Z+"\t.";
PrimitiveTriple out=codec.decode(in);
assertEquals(X,out.getSubject());
assertEquals(Y,out.getPredicate());
assertEquals(Z,out.getObject());
}
@Test
public void parsesALiteralTriple() {
String in=X+"\t"+Y+"\t "+L1+"\t.";
PrimitiveTriple out=codec.decode(in);
assertEquals(X,out.getSubject());
assertEquals(Y,out.getPredicate());
assertEquals(L1,out.getObject());
}
@Test
public void parsesALiteralTripleWithNoSpaceBeforeTerminalPeriod() {
String in=X+"\t"+Y+"\t "+L1+".";
PrimitiveTriple out=codec.decode(in);
assertEquals(X,out.getSubject());
assertEquals(Y,out.getPredicate());
assertEquals(L1,out.getObject());
}
@Test
public void parsesALiteralValueWithSpaces() {
String in=X+"\t"+Y+"\t "+L2+"\t.";
PrimitiveTriple out=codec.decode(in);
assertEquals(X,out.getSubject());
assertEquals(Y,out.getPredicate());
assertEquals(L2,out.getObject());
}
}