package org.gbif.occurrence.persistence.hbase;
import org.gbif.api.vocabulary.Extension;
import org.gbif.dwc.terms.DwcTerm;
import org.gbif.dwc.terms.GbifInternalTerm;
import org.gbif.dwc.terms.GbifTerm;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
*
*/
public class ColumnsTest {
@Test
public void testGetColumn() throws Exception {
assertEquals("scientificName", Columns.column(DwcTerm.scientificName));
assertEquals("countryCode", Columns.column(DwcTerm.countryCode));
assertEquals("v_catalogNumber", Columns.column(DwcTerm.catalogNumber));
assertEquals("class", Columns.column(DwcTerm.class_));
assertEquals("order", Columns.column(DwcTerm.order));
assertEquals("kingdomKey", Columns.column(GbifTerm.kingdomKey));
//TODO: is this correct ???
assertEquals("taxonKey", Columns.column(GbifTerm.taxonKey));
assertEquals("v_occurrenceID", Columns.column(DwcTerm.occurrenceID));
assertEquals("v_taxonID", Columns.column(DwcTerm.taxonID));
assertEquals("basisOfRecord", Columns.column(DwcTerm.basisOfRecord));
assertEquals("taxonKey", Columns.column(GbifTerm.taxonKey));
}
@Test(expected = IllegalArgumentException.class)
public void testGetVerbatimColumnIllegal() {
Columns.verbatimColumn(GbifInternalTerm.crawlId);
}
@Test(expected = IllegalArgumentException.class)
public void testGetColumnIllegal3() {
Columns.column(DwcTerm.country);
}
@Test
public void testGetVerbatimColumn() throws Exception {
assertEquals("v_basisOfRecord", Columns.verbatimColumn(DwcTerm.basisOfRecord));
}
@Test
public void testGetTermFromVerbatimColumn() throws Exception {
assertEquals(DwcTerm.basisOfRecord, Columns.termFromVerbatimColumn(Bytes.toBytes("v_basisOfRecord")));
}
@Test
public void testExtensionsColumns() {
assertEquals(-1, Columns.column(Extension.IMAGE).indexOf(':'));
assertTrue(Columns.column(Extension.IMAGE).startsWith("http"));
assertTrue(Columns.verbatimColumn(Extension.IMAGE).startsWith("v_"));
}
@Test
public void showHbaseKey() {
System.out.println(Bytes.toStringBinary(Bytes.toBytes(466024667)));
}
}