package org.marketcetera.util.log;
import java.util.Locale;
import org.apache.log4j.Level;
import org.junit.Test;
import org.marketcetera.util.test.TestCaseBase;
import static org.junit.Assert.*;
import static org.marketcetera.util.test.EqualityAssert.*;
import static org.marketcetera.util.test.SerializableAssert.*;
/**
* @author tlerios@marketcetera.com
* @since 0.5.0
* @version $Id: TI18NLoggerProxyTest.java 16154 2012-07-14 16:34:05Z colin $
*/
/* $License$ */
public class TI18NLoggerProxyTest
extends TestCaseBase
{
private static final String TEST_CATEGORY=
"TestCategory";
private static final String TEST_MSG_EN=
"Test here (expected): 'a'";
private static final String TEST_MSG_FR=
"Test voil\u00E0 (attendu): 'a'";
private static final String TEST_MSG_EN_NULL=
"Test here (expected): 'null'";
private static final String TEST_MSG_FR_NULL=
"Test voil\u00E0 (attendu): 'null'";
private static final String TEST_MSG_EN_NOSUB=
"Test here (expected): ''{0}''";
private static final String TEST_MSG_FR_NOSUB=
"Test voil\u00E0 (attendu): ''{0}''";
private static final Exception TEST_THROWABLE=
new IllegalArgumentException("Test exception (expected)");
private static final String TEST_LOCATION=
TI18NLoggerProxyTest.class.getName();
private void messageCheck
(Locale locale,
String msg,
String msgNull,
String msgNoSub)
{
ActiveLocale.setProcessLocale(locale);
setLevel(TEST_CATEGORY,Level.OFF);
TestMessages.LOGGER.error
(TEST_CATEGORY,TEST_THROWABLE);
TestMessages.LOGGER.error
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,"a");
TestMessages.LOGGER.error
(TEST_CATEGORY,TestMessages.LOG_MSG,"a");
assertNoEvents();
setLevel(TEST_CATEGORY,Level.ERROR);
TestMessages.LOGGER.error
(TEST_CATEGORY,TEST_THROWABLE);
assertSingleEvent
(Level.ERROR,TEST_CATEGORY,SLF4JLoggerProxy.UNKNOWN_MESSAGE,
TEST_LOCATION);
TestMessages.LOGGER.error
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,"a");
assertSingleEvent
(Level.ERROR,TEST_CATEGORY,msg,TEST_LOCATION);
TestMessages.LOGGER.error(TEST_CATEGORY,TestMessages.LOG_MSG,"a");
assertSingleEvent
(Level.ERROR,TEST_CATEGORY,msg,TEST_LOCATION);
TestMessages.LOGGER.error
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,(Object[])null);
assertSingleEvent
(Level.ERROR,TEST_CATEGORY,msgNoSub,TEST_LOCATION);
TestMessages.LOGGER.error
(TEST_CATEGORY,TestMessages.LOG_MSG,(Object[])null);
assertSingleEvent
(Level.ERROR,TEST_CATEGORY,msgNoSub,TEST_LOCATION);
TestMessages.LOGGER.error
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,(Object)null);
assertSingleEvent
(Level.ERROR,TEST_CATEGORY,msgNull,TEST_LOCATION);
TestMessages.LOGGER.error
(TEST_CATEGORY,TestMessages.LOG_MSG,(Object)null);
assertSingleEvent
(Level.ERROR,TEST_CATEGORY,msgNull,TEST_LOCATION);
TestMessages.LOGGER.warn
(TEST_CATEGORY,TEST_THROWABLE);
TestMessages.LOGGER.warn
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,"a");
TestMessages.LOGGER.warn
(TEST_CATEGORY,TestMessages.LOG_MSG,"a");
assertNoEvents();
setLevel(TEST_CATEGORY,Level.WARN);
TestMessages.LOGGER.warn
(TEST_CATEGORY,TEST_THROWABLE);
assertSingleEvent
(Level.WARN,TEST_CATEGORY,SLF4JLoggerProxy.UNKNOWN_MESSAGE,
TEST_LOCATION);
TestMessages.LOGGER.warn
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,"a");
assertSingleEvent
(Level.WARN,TEST_CATEGORY,msg,TEST_LOCATION);
TestMessages.LOGGER.warn(TEST_CATEGORY,TestMessages.LOG_MSG,"a");
assertSingleEvent
(Level.WARN,TEST_CATEGORY,msg,TEST_LOCATION);
TestMessages.LOGGER.warn
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,(Object[])null);
assertSingleEvent
(Level.WARN,TEST_CATEGORY,msgNoSub,TEST_LOCATION);
TestMessages.LOGGER.warn
(TEST_CATEGORY,TestMessages.LOG_MSG,(Object[])null);
assertSingleEvent
(Level.WARN,TEST_CATEGORY,msgNoSub,TEST_LOCATION);
TestMessages.LOGGER.warn
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,(Object)null);
assertSingleEvent
(Level.WARN,TEST_CATEGORY,msgNull,TEST_LOCATION);
TestMessages.LOGGER.warn
(TEST_CATEGORY,TestMessages.LOG_MSG,(Object)null);
assertSingleEvent
(Level.WARN,TEST_CATEGORY,msgNull,TEST_LOCATION);
TestMessages.LOGGER.info
(TEST_CATEGORY,TEST_THROWABLE);
TestMessages.LOGGER.info
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,"a");
TestMessages.LOGGER.info
(TEST_CATEGORY,TestMessages.LOG_MSG,"a");
assertNoEvents();
setLevel(TEST_CATEGORY,Level.INFO);
TestMessages.LOGGER.info
(TEST_CATEGORY,TEST_THROWABLE);
assertSingleEvent
(Level.INFO,TEST_CATEGORY,SLF4JLoggerProxy.UNKNOWN_MESSAGE,
TEST_LOCATION);
TestMessages.LOGGER.info
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,"a");
assertSingleEvent
(Level.INFO,TEST_CATEGORY,msg,TEST_LOCATION);
TestMessages.LOGGER.info(TEST_CATEGORY,TestMessages.LOG_MSG,"a");
assertSingleEvent
(Level.INFO,TEST_CATEGORY,msg,TEST_LOCATION);
TestMessages.LOGGER.info
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,(Object[])null);
assertSingleEvent
(Level.INFO,TEST_CATEGORY,msgNoSub,TEST_LOCATION);
TestMessages.LOGGER.info
(TEST_CATEGORY,TestMessages.LOG_MSG,(Object[])null);
assertSingleEvent
(Level.INFO,TEST_CATEGORY,msgNoSub,TEST_LOCATION);
TestMessages.LOGGER.info
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,(Object)null);
assertSingleEvent
(Level.INFO,TEST_CATEGORY,msgNull,TEST_LOCATION);
TestMessages.LOGGER.info
(TEST_CATEGORY,TestMessages.LOG_MSG,(Object)null);
assertSingleEvent
(Level.INFO,TEST_CATEGORY,msgNull,TEST_LOCATION);
TestMessages.LOGGER.debug
(TEST_CATEGORY,TEST_THROWABLE);
TestMessages.LOGGER.debug
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,"a");
TestMessages.LOGGER.debug
(TEST_CATEGORY,TestMessages.LOG_MSG,"a");
assertNoEvents();
setLevel(TEST_CATEGORY,Level.DEBUG);
TestMessages.LOGGER.debug
(TEST_CATEGORY,TEST_THROWABLE);
assertSingleEvent
(Level.DEBUG,TEST_CATEGORY,SLF4JLoggerProxy.UNKNOWN_MESSAGE,
TEST_LOCATION);
TestMessages.LOGGER.debug
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,"a");
assertSingleEvent
(Level.DEBUG,TEST_CATEGORY,msg,TEST_LOCATION);
TestMessages.LOGGER.debug(TEST_CATEGORY,TestMessages.LOG_MSG,"a");
assertSingleEvent
(Level.DEBUG,TEST_CATEGORY,msg,TEST_LOCATION);
TestMessages.LOGGER.debug
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,(Object[])null);
assertSingleEvent
(Level.DEBUG,TEST_CATEGORY,msgNoSub,TEST_LOCATION);
TestMessages.LOGGER.debug
(TEST_CATEGORY,TestMessages.LOG_MSG,(Object[])null);
assertSingleEvent
(Level.DEBUG,TEST_CATEGORY,msgNoSub,TEST_LOCATION);
TestMessages.LOGGER.debug
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,(Object)null);
assertSingleEvent
(Level.DEBUG,TEST_CATEGORY,msgNull,TEST_LOCATION);
TestMessages.LOGGER.debug
(TEST_CATEGORY,TestMessages.LOG_MSG,(Object)null);
assertSingleEvent
(Level.DEBUG,TEST_CATEGORY,msgNull,TEST_LOCATION);
TestMessages.LOGGER.trace
(TEST_CATEGORY,TEST_THROWABLE);
TestMessages.LOGGER.trace
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,"a");
TestMessages.LOGGER.trace
(TEST_CATEGORY,TestMessages.LOG_MSG,"a");
assertNoEvents();
setLevel(TEST_CATEGORY,Level.TRACE);
TestMessages.LOGGER.trace
(TEST_CATEGORY,TEST_THROWABLE);
assertSingleEvent
(Level.TRACE,TEST_CATEGORY,SLF4JLoggerProxy.UNKNOWN_MESSAGE,
TEST_LOCATION);
TestMessages.LOGGER.trace
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,"a");
assertSingleEvent
(Level.TRACE,TEST_CATEGORY,msg,TEST_LOCATION);
TestMessages.LOGGER.trace(TEST_CATEGORY,TestMessages.LOG_MSG,"a");
assertSingleEvent
(Level.TRACE,TEST_CATEGORY,msg,TEST_LOCATION);
TestMessages.LOGGER.trace
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,(Object[])null);
assertSingleEvent
(Level.TRACE,TEST_CATEGORY,msgNoSub,TEST_LOCATION);
TestMessages.LOGGER.trace
(TEST_CATEGORY,TestMessages.LOG_MSG,(Object[])null);
assertSingleEvent
(Level.TRACE,TEST_CATEGORY,msgNoSub,TEST_LOCATION);
TestMessages.LOGGER.trace
(TEST_CATEGORY,TEST_THROWABLE,TestMessages.LOG_MSG,(Object)null);
assertSingleEvent
(Level.TRACE,TEST_CATEGORY,msgNull,TEST_LOCATION);
TestMessages.LOGGER.trace
(TEST_CATEGORY,TestMessages.LOG_MSG,(Object)null);
assertSingleEvent
(Level.TRACE,TEST_CATEGORY,msgNull,TEST_LOCATION);
}
@Test
public void providerIsValid()
{
assertEquals
(TestMessages.PROVIDER,TestMessages.LOGGER.getMessageProvider());
}
@Test
public void equality()
{
assertEquality(new I18NLoggerProxy(new I18NMessageProvider("a")),
new I18NLoggerProxy(new I18NMessageProvider("a")),
new I18NLoggerProxy(new I18NMessageProvider("b")));
assertSerializable(TestMessages.LOGGER);
}
@Test
public void messages()
{
messageCheck
(Locale.ROOT,TEST_MSG_EN,TEST_MSG_EN_NULL,TEST_MSG_EN_NOSUB);
messageCheck
(Locale.FRENCH,TEST_MSG_FR,TEST_MSG_FR_NULL,TEST_MSG_FR_NOSUB);
}
}