package uk.co.acuminous.julez.transformer;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
public class DefaultColumnNameTransformerTest {
private DefaultColumnNameTransformer transformer;
@Before
public void init() {
transformer = new DefaultColumnNameTransformer();
}
@Test
public void removesNonAlphaNumericCharactersFromStartAndEnd() {
assertEquals("TESTRUN", transformer.transform("#TESTRUN"));
assertEquals("TESTRUN", transformer.transform("TESTRUN_"));
assertEquals("TESTRUN", transformer.transform("__TESTRUN##"));
}
@Test
public void replacesNonWordCharactersWithAnUnderscore() {
assertEquals("TEST_RUN", transformer.transform("TEST.RUN"));
assertEquals("TEST_RUN", transformer.transform("TEST_RUN"));
assertEquals("TEST_RUN", transformer.transform("TEST RUN"));
assertEquals("TEST_RUN", transformer.transform("TEST .RUN"));
}
@Test
public void separatesCamelCaseWithAnUnderscore() {
assertEquals("TEST_RUN", transformer.transform("testRun"));
assertEquals("TEST_RUN", transformer.transform("TestRun"));
assertEquals("TEST_RUN_1", transformer.transform("TestRun1"));
assertEquals("TEST_RUN_123", transformer.transform("TestRun123"));
}
@Test
public void convertsToUpperCase() {
assertEquals("TESTRUN", transformer.transform("testrun"));
assertEquals("TEST_RUN", transformer.transform("testRun"));
assertEquals("TEST_RUN", transformer.transform("TestRun"));
}
}