Logger { public abstract void info( I18nResource message, Object... params );  static Locale getLoggingLocale(); static Locale setLoggingLocale( Locale locale ); static Logger getLogger( Class<?> clazz ); static Logger getLogger( String name ); abstract String getName(); void log( Level level,
                     I18nResource message,
                     Object... params ); void log( Level level,
                     Throwable t,
                     I18nResource message,
                     Object... params ); abstract void debug( String message,
                                Object... params ); abstract void debug( Throwable t,
                                String message,
                                Object... params ); abstract void error( I18nResource message,
                                Object... params ); abstract void error( Throwable t,
                                I18nResource message,
                                Object... params ); abstract void info( I18nResource message,
                               Object... params ); abstract void info( Throwable t,
                               I18nResource message,
                               Object... params ); abstract void trace( String message,
                                Object... params ); abstract void trace( Throwable t,
                                String message,
                                Object... params ); abstract void warn( I18nResource message,
                               Object... params ); abstract void warn( Throwable t,
                               I18nResource message,
                               Object... params ); abstract boolean isInfoEnabled(); abstract boolean isWarnEnabled(); abstract boolean isErrorEnabled(); abstract boolean isDebugEnabled(); abstract boolean isTraceEnabled();  }
@Test( expected = IllegalArgumentException.class ) public void shouldNotAcceptInfoMessageWithTooFewParameters() { logger.info(infoMessageWithTwoParameters, (Object[])null); }