package dbfit.util; import static dbfit.util.SymbolUtil.getSymbol; import static dbfit.util.SymbolUtil.isSymbolGetter; import static dbfit.util.SymbolUtil.isSymbolSetter; import static dbfit.util.SymbolUtil.isSymbolHidden; import org.junit.Test; import org.junit.Before; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertEquals; import java.util.Collection; public class SymbolUtilTest { @Before public void prepare() { SymbolUtil.setSymbol("NULL_SYMBOL", null); SymbolUtil.setSymbol("SYMBOL_X", "X"); } @Test public void canGetNonNullGetSymbols() { assertEquals("X", getSymbol("<<SYMBOL_X")); } @Test public void canGetNonNullSetSymbols() { assertEquals("X", getSymbol(">>SYMBOL_X")); } @Test public void canGetNullSymbols() { assertNull(getSymbol("<<NULL_SYMBOL")); } @Test public void undefinedSymbolDefaultsToNull() { assertNull(getSymbol("<<MISSING_SYMBOL")); } @RunWith(Parameterized.class) public static class IsSymbolGetterOrSetterTest { private String symbolFullName; private boolean expectedIsSymbolGetter; private boolean expectedIsSymbolSetter; private boolean expectedIsSymbolHidden; public IsSymbolGetterOrSetterTest( String symbolFullName, Boolean expectedIsSymbolGetter, Boolean expectedIsSymbolSetter, Boolean expectedIsSymbolHidden) { this.symbolFullName = symbolFullName; this.expectedIsSymbolGetter = expectedIsSymbolGetter; this.expectedIsSymbolSetter = expectedIsSymbolSetter; this.expectedIsSymbolHidden = expectedIsSymbolHidden; } @Parameters(name = "({index}): symbol {0} -> expecting {1}") public static Collection<Object[]> data() throws Exception { return java.util.Arrays.asList(new Object[][] { {"<<SYMBOL_X", true, false, false}, {">>SYMBOL_X", false, true, false}, {"<<<SYMBOL_X", true, false, true}, {">>>SYMBOL_X", false, true, true}, {"SYMBOL_X", false, false, false}, {null, false, false, false} }); } @Test public void testIsSymbolGetter() { assertEquals(expectedIsSymbolGetter, isSymbolGetter(symbolFullName)); } @Test public void testIsSymbolSetter() { assertEquals(expectedIsSymbolSetter, isSymbolSetter(symbolFullName)); } @Test public void testIsSymbolHidden() { assertEquals(expectedIsSymbolHidden, isSymbolHidden(symbolFullName)); } } }