/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.segmentation.server.paramImport; import junit.framework.TestCase; import net.codjo.segmentation.server.ParseException; /** * */ public class AbstractParserManagerTest extends TestCase { private AbstractParserManager manager; public void test_createDataArray() throws Exception { String rawData = "AXE_ID\tLABEL_AXE\tFAMILY_AXE\n" + "2\tAxe event 2\tEVENT\n" + "3\tAxe event 3\tEVENT\n"; manager = new ParserManagerMock(rawData); manager.parse(); String[][] array = manager.getDataArray(); assertEquals("AXE_ID", array[0][0]); assertEquals("FAMILY_AXE", array[0][1]); assertEquals("LABEL_AXE", array[0][2]); assertEquals("IS_QUARANTINE", array[0][3]); assertEquals("2", array[1][0]); assertEquals("EVENT", array[1][1]); assertEquals("Axe event 2", array[1][2]); assertEquals("false", array[1][3]); assertEquals("3", array[2][0]); assertEquals("EVENT", array[2][1]); assertEquals("Axe event 3", array[2][2]); assertEquals("false", array[2][3]); } public void test_badFileFormat_missingHeaders() throws Exception { String rawData = "AXE_ID\tFAMILY_AXE\tCOL1\tCOL2\tCOL3\tCOL4"; try { manager = new ParserManagerMock(rawData); manager.parse(); fail("Exception attendue"); } catch (ParseException exception) { assertEquals(ParseException.BAD_FILE_FORMAT, exception.getMessage()); } } public void test_badFileFormat_wrongHeaders() throws Exception { try { manager = new ParserManagerMock("AXE_ID\tBAD_HEADER\tFAMILY_AXE"); manager.parse(); fail("Exception attendue"); } catch (ParseException exception) { assertEquals(ParseException.BAD_FILE_FORMAT, exception.getMessage()); } } public void test_badFileFormat_wrongRows() throws Exception { try { String wrongLine = "AXE_ID\tLABEL_AXE\tFAMILY_AXE\n" + "1\tLabel 1\tFamily 1\n" + "2\tLabel 2"; manager = new ParserManagerMock(wrongLine); manager.parse(); fail("Exception attendue"); } catch (ParseException exception) { assertEquals(ParseException.BAD_FILE_FORMAT, exception.getMessage()); } } public void test_badFileFormat_noSeparators() throws Exception { try { String wrongLine = "AXE_ID;LABEL_AXE;FAMILY_AXE;\n" + "1;Label 1;Family 1;\n" + "2;Label 2;Family 2"; manager = new ParserManagerMock(wrongLine); manager.parse(); fail("Exception attendue"); } catch (ParseException exception) { assertEquals(ParseException.BAD_FILE_FORMAT, exception.getMessage()); } } public void test_blankValues() throws Exception { String line = "AXE_ID\tLABEL_AXE\tFAMILY_AXE\n" + "1\tLabel 1\t\t\n" + "2\tLabel 2\t\t\n"; manager = new ParserManagerMock(line); manager.parse(); String[][] array = manager.getDataArray(); assertEquals("AXE_ID", array[0][0]); assertEquals("FAMILY_AXE", array[0][1]); assertEquals("LABEL_AXE", array[0][2]); assertEquals("IS_QUARANTINE", array[0][3]); assertEquals("1", array[1][0]); assertNull(array[1][1]); assertEquals("Label 1", array[1][2]); assertEquals("false", array[1][3]); assertEquals("2", array[2][0]); assertNull(array[2][1]); assertEquals("Label 2", array[2][2]); assertEquals("false", array[2][3]); } public void test_blankValues_middle() throws Exception { String line = "AXE_ID\tLABEL_AXE\tFAMILY_AXE\n" + "1\t\tFamily 1\n" + "2\t\tFamily 2\n"; manager = new ParserManagerMock(line); manager.parse(); String[][] array = manager.getDataArray(); assertEquals("AXE_ID", array[0][0]); assertEquals("FAMILY_AXE", array[0][1]); assertEquals("LABEL_AXE", array[0][2]); assertEquals("IS_QUARANTINE", array[0][3]); assertEquals("1", array[1][0]); assertEquals("Family 1", array[1][1]); assertNull(array[1][2]); assertEquals("false", array[1][3]); assertEquals("2", array[2][0]); assertEquals("Family 2", array[2][1]); assertNull(array[2][2]); assertEquals("false", array[2][3]); } private static class ParserManagerMock extends AbstractParserManager { private ParserManagerMock(String rawData) { super(rawData); } @Override public String getTableName() { return "PM_DUMMY"; } @Override public String[] getColumnNames() { return new String[]{"AXE_ID", "FAMILY_AXE", "LABEL_AXE"}; } } }