package dbfit.util;
import org.junit.Test;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertEquals;
public class SymbolReferenceTest {
public static abstract class AbstractSymbolReferenceTest {
private String expectedName;
private String expectedPrefix;
private SymbolReference symbolReference;
protected AbstractSymbolReferenceTest(String expectedName, String expectedPrefix, String fullName) {
this.expectedName = expectedName;
this.expectedPrefix = expectedPrefix;
this.symbolReference = SymbolReference.fromFullName(fullName);
}
@Test
public void testName() {
assertEquals(expectedName, symbolReference.getName());
}
@Test
public void textPrefix() {
assertEquals(expectedPrefix, symbolReference.getPrefix());
}
}
@Test
public void testParseNullFullName() {
SymbolReference symbolReference = SymbolReference.fromFullName(null);
assertNull(symbolReference.getName());
assertEquals("", symbolReference.getPrefix());
}
public static class StandardSymbolGetterReferenceTest extends AbstractSymbolReferenceTest {
public StandardSymbolGetterReferenceTest() {
super("SYMBOL_X", "<<", "<<SYMBOL_X");
}
}
public static class StandardSymbolSetterReferenceTest extends AbstractSymbolReferenceTest {
public StandardSymbolSetterReferenceTest() {
super("SYMBOL_X", ">>", ">>SYMBOL_X");
}
}
public static class HiddenSymbolGetterReferenceTest extends AbstractSymbolReferenceTest {
public HiddenSymbolGetterReferenceTest() {
super("SYMBOL_X", "<<<", "<<<SYMBOL_X");
}
}
public static class HiddenSymbolSetterReferenceTest extends AbstractSymbolReferenceTest {
public HiddenSymbolSetterReferenceTest() {
super("SYMBOL_X", ">>>", ">>>SYMBOL_X");
}
}
}