package dmg.util.logback;
import org.junit.Test;
import org.slf4j.Logger;
import static org.junit.Assert.*;
public class LoggerNameTest
{
private static final String CHILD_OF_ROOT = "logger";
private static final String LOGGER = "logger.foo";
private static final String CHILD1_OF_LOGGER = "logger.foo.child1";
private static final String CHILD2_OF_LOGGER = "logger.foo$child2";
@Test
public void testRootHasCorrectName()
{
assertEquals(Logger.ROOT_LOGGER_NAME, LoggerName.ROOT.toString());
}
@Test
public void testGetInstanceOfRoot()
{
assertEquals(LoggerName.ROOT, LoggerName.getInstance(Logger.ROOT_LOGGER_NAME));
}
@Test
public void testGetInstanceOfRootIsCaseInsensitive()
{
assertEquals(LoggerName.ROOT, LoggerName.getInstance(Logger.ROOT_LOGGER_NAME.toUpperCase()));
assertEquals(LoggerName.ROOT, LoggerName.getInstance(Logger.ROOT_LOGGER_NAME.toLowerCase()));
}
@Test
public void testGetInstance()
{
assertEquals(LOGGER, LoggerName.getInstance(LOGGER).toString());
}
@Test
public void testValueOfRoot()
{
assertEquals(LoggerName.ROOT, LoggerName.valueOf(Logger.ROOT_LOGGER_NAME));
}
@Test
public void testValueOfRootIsCaseInsensitive()
{
assertEquals(LoggerName.ROOT, LoggerName.valueOf(Logger.ROOT_LOGGER_NAME.toUpperCase()));
assertEquals(LoggerName.ROOT, LoggerName.valueOf(Logger.ROOT_LOGGER_NAME.toLowerCase()));
}
@Test
public void testGetValueOf()
{
assertEquals(LOGGER, LoggerName.valueOf(LOGGER).toString());
}
@Test
public void testEqualsWithNull()
{
assertFalse(LoggerName.ROOT.equals(null));
}
@Test
public void testEqualsWithWrongType()
{
assertFalse(LoggerName.ROOT.equals(Logger.ROOT_LOGGER_NAME));
}
@Test
public void testEqualsWithDifferent()
{
assertFalse(LoggerName.ROOT.equals(LoggerName.getInstance(LOGGER)));
}
@Test
public void testEqualsWithSame()
{
assertTrue(LoggerName.ROOT.equals(LoggerName.ROOT));
}
@Test
public void testEqualsWithEquals()
{
assertTrue(LoggerName.getInstance(LOGGER).equals(LoggerName.valueOf(LOGGER)));
}
@Test
public void testHashCodeEquals()
{
assertEquals(LoggerName.getInstance(LOGGER).hashCode(),
LoggerName.getInstance(LOGGER).hashCode());
}
@Test
public void testParentOfRootIsNull()
{
assertNull(LoggerName.ROOT.getParent());
}
@Test
public void testParentIsRoot()
{
assertEquals(LoggerName.ROOT,
LoggerName.getInstance(CHILD_OF_ROOT).getParent());
}
@Test
public void testParentWithDot()
{
assertEquals(LoggerName.getInstance(LOGGER),
LoggerName.getInstance(CHILD1_OF_LOGGER).getParent());
}
@Test
public void testParentWithDollar()
{
assertEquals(LoggerName.getInstance(LOGGER),
LoggerName.getInstance(CHILD2_OF_LOGGER).getParent());
}
}