package fr.ens.biologie.genomique.eoulsan.translator; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.Test; import fr.ens.biologie.genomique.eoulsan.translators.AddIdentifierTranslator; import fr.ens.biologie.genomique.eoulsan.translators.MultiColumnTranslator; public class AbstractTranslatorTest { private static final String[] ARRAY_FIELD = {"Col1", "Col2", "Col3", "Col4"}; private static final String[] ARRAY_ROW_ONE = {"A", "1", "A1", "0"}; private static final String[] ARRAY_ROW_TWO = {"B", "2", "B2", "0"}; private static final String[] ARRAY_ROW_THREE = {"C", "3.0", "C3", "0"}; private static final String[] ARRAY_ROW_FOUR = {"D", "4", "D4", "0"}; private static final String[] ARRAY_ROW_FIVE = {"E", "4", "D4"}; private static final String[] ARRAY_IDS = {"A", "B", "C", "D", "E"}; MultiColumnTranslator transl = new MultiColumnTranslator(ARRAY_FIELD); @Test public void testNewTrans() { transl.addRow(ARRAY_ROW_ONE); AddIdentifierTranslator AddIdTransl = new AddIdentifierTranslator(transl); List<String> fields = AddIdTransl.getFields(); assertTrue(AddIdTransl.isField(fields.get(0))); assertFalse(AddIdTransl.isField("missingField")); try { AddIdTransl.isField(null); assertTrue(false); } catch (NullPointerException e) { assertTrue(true); } } @Test public void testGetSetDefaultField() { assertEquals("Col2", transl.getDefaultField()); try { transl.setDefaultField(null); assertTrue(false); } catch (RuntimeException e) { assertTrue(true); } transl.setDefaultField("Col3"); assertEquals("Col3", transl.getDefaultField()); } @Test public void testIsField() { List<String> fields = transl.getFields(); assertTrue(transl.isField(fields.get(0))); assertFalse(transl.isField("missingField")); try { transl.isField(null); assertTrue(false); } catch (NullPointerException e) { assertTrue(true); } } @Test public void testGetIds() { transl.addRow(ARRAY_ROW_ONE); transl.addRow(ARRAY_ROW_TWO); transl.addRow(ARRAY_ROW_THREE); transl.addRow(ARRAY_ROW_FOUR); transl.addRow(ARRAY_ROW_FIVE); List<String> ids = transl.getIds(); assertEquals(5, ids.size()); for (String id : ARRAY_IDS) { assertTrue(ids.contains(id)); } } @Test public void testTranslate() { transl.addRow(ARRAY_ROW_ONE); assertEquals("1", transl.translate("A").get(0)); assertEquals("A1", transl.translate("A").get(1)); assertEquals("0", transl.translate("A").get(2)); try { transl.translate("").get(3); assertTrue(false); } catch (NullPointerException e) { assertTrue(true); } try { transl.translate("B").get(3); assertTrue(false); } catch (IndexOutOfBoundsException e) { assertTrue(true); } } @Test public void testTranslateField() { transl.addRow(ARRAY_ROW_ONE); assertEquals("1", transl.translateField("A", "Col2")); assertNull(transl.translateField("Col2", "A")); assertNull(transl.translateField("", "")); } @Test public void testIsLinkInfo() { transl.addRow(ARRAY_ROW_ONE); transl.addRow(ARRAY_ROW_TWO); transl.addRow(ARRAY_ROW_THREE); transl.addRow(ARRAY_ROW_FOUR); transl.addRow(ARRAY_ROW_FIVE); assertNull(transl.getLinkInfo("A", "Col2")); } }