/*
* Copyright 2016 Cel Skeggs
*
* This file is part of the CCRE, the Common Chicken Runtime Engine.
*
* The CCRE is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* The CCRE is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with the CCRE. If not, see <http://www.gnu.org/licenses/>.
*/
package ccre.log;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import ccre.util.Values;
@SuppressWarnings("javadoc")
public class LoggerTest {
@Before
public void setUp() throws Exception {
VerifyingLogger.begin();
}
@After
public void tearDown() throws Exception {
VerifyingLogger.checkAndEnd();
}
@Test
public void testLogLogLevelStringThrowable() {
for (LogLevel level : LogLevel.allLevels) {
for (String message : Values.getRandomStrings(20)) {
Throwable thr = Values.getRandomBoolean() ? null : new Exception();
VerifyingLogger.configure(level, message, thr);
Logger.log(level, message, thr);
}
}
}
@Test(expected = NullPointerException.class)
public void testLogLogLevelStringThrowableNullA() {
Logger.log(null, "test", null);
}
@Test(expected = NullPointerException.class)
public void testLogLogLevelStringThrowableNullB() {
Logger.log(LogLevel.SEVERE, null, null);
}
@Test
public void testLogLogLevelString() {
for (LogLevel level : LogLevel.allLevels) {
for (String message : Values.getRandomStrings(10)) {
VerifyingLogger.configure(level, message);
Logger.log(level, message);
}
}
}
@Test(expected = NullPointerException.class)
public void testLogLogLevelStringNullA() {
Logger.log(null, "test");
}
@Test(expected = NullPointerException.class)
public void testLogLogLevelStringNullB() {
Logger.log(LogLevel.SEVERE, null, null);
}
@Test
public void testLogExt() {
for (LogLevel level : LogLevel.allLevels) {
for (String message : Values.getRandomStrings(10)) {
String ext = Values.getRandomString();
VerifyingLogger.configureExt(level, message, ext);
Logger.logExt(level, message, ext);
}
}
}
@Test(expected = NullPointerException.class)
public void testLogExtNullA() {
Logger.logExt(null, "test", null);
}
@Test(expected = NullPointerException.class)
public void testLogExtNullB() {
Logger.logExt(LogLevel.SEVERE, null, null);
}
@Test
public void testSevereString() {
for (String message : Values.getRandomStrings(10)) {
VerifyingLogger.configure(LogLevel.SEVERE, message);
Logger.severe(message);
}
}
@Test
public void testWarningString() {
for (String message : Values.getRandomStrings(10)) {
VerifyingLogger.configure(LogLevel.WARNING, message);
Logger.warning(message);
}
}
@Test
public void testInfoString() {
for (String message : Values.getRandomStrings(10)) {
VerifyingLogger.configure(LogLevel.INFO, message);
Logger.info(message);
}
}
@Test
public void testConfigString() {
for (String message : Values.getRandomStrings(10)) {
VerifyingLogger.configure(LogLevel.CONFIG, message);
Logger.config(message);
}
}
@Test
public void testFineString() {
for (String message : Values.getRandomStrings(10)) {
VerifyingLogger.configure(LogLevel.FINE, message);
Logger.fine(message);
}
}
@Test
public void testFinerString() {
for (String message : Values.getRandomStrings(10)) {
VerifyingLogger.configure(LogLevel.FINER, message);
Logger.finer(message);
}
}
@Test
public void testFinestString() {
for (String message : Values.getRandomStrings(10)) {
VerifyingLogger.configure(LogLevel.FINEST, message);
Logger.finest(message);
}
}
@Test
public void testSevereStringThrowable() {
for (String message : Values.getRandomStrings(20)) {
Exception exc = Values.getRandomBoolean() ? null : new Exception();
VerifyingLogger.configure(LogLevel.SEVERE, message, exc);
Logger.severe(message, exc);
}
}
@Test
public void testWarningStringThrowable() {
for (String message : Values.getRandomStrings(20)) {
Exception exc = Values.getRandomBoolean() ? null : new Exception();
VerifyingLogger.configure(LogLevel.WARNING, message, exc);
Logger.warning(message, exc);
}
}
@Test
public void testInfoStringThrowable() {
for (String message : Values.getRandomStrings(20)) {
Exception exc = Values.getRandomBoolean() ? null : new Exception();
VerifyingLogger.configure(LogLevel.INFO, message, exc);
Logger.info(message, exc);
}
}
@Test
public void testConfigStringThrowable() {
for (String message : Values.getRandomStrings(20)) {
Exception exc = Values.getRandomBoolean() ? null : new Exception();
VerifyingLogger.configure(LogLevel.CONFIG, message, exc);
Logger.config(message, exc);
}
}
@Test
public void testFineStringThrowable() {
for (String message : Values.getRandomStrings(20)) {
Exception exc = Values.getRandomBoolean() ? null : new Exception();
VerifyingLogger.configure(LogLevel.FINE, message, exc);
Logger.fine(message, exc);
}
}
@Test
public void testFinerStringThrowable() {
for (String message : Values.getRandomStrings(20)) {
Exception exc = Values.getRandomBoolean() ? null : new Exception();
VerifyingLogger.configure(LogLevel.FINER, message, exc);
Logger.finer(message, exc);
}
}
@Test
public void testFinestStringThrowable() {
for (String message : Values.getRandomStrings(20)) {
Exception exc = Values.getRandomBoolean() ? null : new Exception();
VerifyingLogger.configure(LogLevel.FINEST, message, exc);
Logger.finest(message, exc);
}
}
// NULLS
@Test(expected = NullPointerException.class)
public void testSevereStringNull() {
Logger.severe(null);
}
@Test(expected = NullPointerException.class)
public void testWarningStringNull() {
Logger.warning(null);
}
@Test(expected = NullPointerException.class)
public void testInfoStringNull() {
Logger.info(null);
}
@Test(expected = NullPointerException.class)
public void testConfigStringNull() {
Logger.config(null);
}
@Test(expected = NullPointerException.class)
public void testFineStringNull() {
Logger.fine(null);
}
@Test(expected = NullPointerException.class)
public void testFinerStringNull() {
Logger.finer(null);
}
@Test(expected = NullPointerException.class)
public void testFinestStringNull() {
Logger.finest(null);
}
@Test(expected = NullPointerException.class)
public void testSevereStringThrowableNull() {
Logger.severe(null, new Exception());
}
@Test(expected = NullPointerException.class)
public void testWarningStringThrowableNull() {
Logger.warning(null, new Exception());
}
@Test(expected = NullPointerException.class)
public void testInfoStringThrowableNull() {
Logger.info(null, new Exception());
}
@Test(expected = NullPointerException.class)
public void testConfigStringThrowableNull() {
Logger.config(null, new Exception());
}
@Test(expected = NullPointerException.class)
public void testFineStringThrowableNull() {
Logger.fine(null, new Exception());
}
@Test(expected = NullPointerException.class)
public void testFinerStringThrowableNull() {
Logger.finer(null, new Exception());
}
@Test(expected = NullPointerException.class)
public void testFinestStringThrowableNull() {
Logger.finest(null, new Exception());
}
}