package com.bigdata.rdf.internal; import java.util.LinkedList; import java.util.List; import junit.framework.TestCase2; import org.openrdf.model.URI; import org.openrdf.model.impl.URIImpl; import com.bigdata.btree.keys.IKeyBuilder; import com.bigdata.rdf.internal.impl.literal.FullyInlineTypedLiteralIV; import com.bigdata.rdf.lexicon.BlobsIndexHelper; import com.bigdata.rdf.model.BigdataLiteral; /** * Test suite for {@link FullyInlineTypedLiteralIV}. */ public class TestFullyInlineTypedLiteralIV extends TestCase2 { public TestFullyInlineTypedLiteralIV() { } public TestFullyInlineTypedLiteralIV(String name) { super(name); } public void test_InlineLiteralIV_plain() { doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("")); doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>(" ")); doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("1")); doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("12")); doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("123")); } //Removed in backport. Not used in pre-RDF 1.1 versions // public void test_InlineLiteralIV_languageCode() { // // doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("","en",null/*datatype*/)); // doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>(" ","en",null/*datatype*/)); // doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("1","en",null/*datatype*/)); // doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("12","fr",null/*datatype*/)); // doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("123","de",null/*datatype*/)); // // } public void test_InlineLiteralIV_datatypeURI() { final URI datatype = new URIImpl("http://www.bigdata.com"); doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("", null, datatype)); doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>(" ", null, datatype)); doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("1", null, datatype)); doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("12", null, datatype)); doTest(new FullyInlineTypedLiteralIV<BigdataLiteral>("123", null, datatype)); } private void doTest(final FullyInlineTypedLiteralIV<BigdataLiteral> iv) { assertEquals(VTE.LITERAL, iv.getVTE()); assertTrue(iv.isInline()); assertFalse(iv.isExtension()); assertEquals(DTE.XSDString, iv.getDTE()); final BlobsIndexHelper h = new BlobsIndexHelper(); final IKeyBuilder keyBuilder = h.newKeyBuilder(); final byte[] key = IVUtility.encode(keyBuilder, iv).getKey(); final IV<?,?> actual = IVUtility.decode(key); assertEquals(iv, actual); assertEquals(key.length, iv.byteLength()); assertEquals(key.length, actual.byteLength()); } public void test_encodeDecode_comparator() { final List<IV<?,?>> ivs = new LinkedList<IV<?,?>>(); { final URI datatype = new URIImpl("http://www.bigdata.com"); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("")); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>(" ")); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("1")); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("12")); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("123")); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("","en",null/*datatype*/)); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>(" ","en",null/*datatype*/)); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("1","en",null/*datatype*/)); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("12","fr",null/*datatype*/)); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("123","de",null/*datatype*/)); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("", null, datatype)); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>(" ", null, datatype)); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("1", null, datatype)); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("12", null, datatype)); ivs.add(new FullyInlineTypedLiteralIV<BigdataLiteral>("123", null, datatype)); } final IV<?, ?>[] e = ivs.toArray(new IV[0]); AbstractEncodeDecodeKeysTestCase.doEncodeDecodeTest(e); AbstractEncodeDecodeKeysTestCase.doComparatorTest(e); } }