Skip to content

Commit

Permalink
Fix Quality flaws in batch
Browse files Browse the repository at this point in the history
  • Loading branch information
dbmeneses committed Jun 24, 2015
1 parent 1385dd3 commit 86bec73
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 10 deletions.
Expand Up @@ -55,4 +55,9 @@ public void test_enableCache() {
provider = new PersistentCacheProvider();
assertThat(provider.provide(props).isForceUpdate()).isFalse();
}

@Test
public void test_reconfigure() {

}
}
Expand Up @@ -24,6 +24,8 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;

import static org.mockito.Mockito.reset;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
import org.junit.Test;
Expand All @@ -39,28 +41,39 @@ public class LogCallbackAppenderTest {
public void setUp() {
listener = mock(LogListener.class);
appender = new LogCallbackAppender(listener);
event = mock(ILoggingEvent.class);
when(event.getMessage()).thenReturn("test");
when(event.getLevel()).thenReturn(Level.INFO);
}


@Test
public void testAppendLog() {

public void testLevelTranslation() {
testMessage("test", Level.INFO, LogListener.Level.INFO);
testMessage("test", Level.DEBUG, LogListener.Level.DEBUG);
testMessage("test", Level.ERROR, LogListener.Level.ERROR);
testMessage("test", Level.TRACE, LogListener.Level.TRACE);
testMessage("test", Level.WARN, LogListener.Level.WARN);

// this should never happen
testMessage("test", Level.OFF, LogListener.Level.DEBUG);
}

private void testMessage(String msg, Level level, LogListener.Level translatedLevel) {
reset(listener);
event = mock(ILoggingEvent.class);
when(event.getMessage()).thenReturn(msg);
when(event.getLevel()).thenReturn(level);

appender.append(event);

verify(event).getMessage();
verify(event).getLevel();

verify(listener).log("test", LogListener.Level.INFO);

verify(listener).log(msg, translatedLevel);
verifyNoMoreInteractions(event, listener);
}

@Test
public void testChangeTarget() {
listener = mock(LogListener.class);
appender.setTarget(listener);
testAppendLog();
testLevelTranslation();
}
}
Expand Up @@ -19,12 +19,20 @@
*/
package org.sonar.batch.bootstrapper;

import org.apache.commons.io.IOUtils;
import org.junit.Rule;
import org.junit.rules.TemporaryFolder;
import org.sonar.home.log.LogListener;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
Expand All @@ -34,10 +42,13 @@
import org.junit.Before;

public class LoggingConfiguratorTest {
private static final String DEFAULT_CLASSPATH_CONF = "/org/sonar/batch/bootstrapper/logback.xml";
private static final String TEST_STR = "foo";
private LoggingConfiguration conf = new LoggingConfiguration();
private ByteArrayOutputStream out;
private SimpleLogListener listener;
@Rule
public TemporaryFolder folder = new TemporaryFolder();

@Before
public void setUp() {
Expand All @@ -56,6 +67,25 @@ public void log(String msg, Level level) {
this.level = level;
}
}

@Test
public void testWithFile() throws FileNotFoundException, IOException {
InputStream is = this.getClass().getResourceAsStream(DEFAULT_CLASSPATH_CONF);
File tmpFolder = folder.getRoot();
File testFile = new File(tmpFolder, "test");
OutputStream os = new FileOutputStream(testFile);
IOUtils.copy(is, os);
os.close();

conf.setListener(listener);
LoggingConfigurator.apply(conf, testFile);

Logger logger = LoggerFactory.getLogger(this.getClass());
logger.info(TEST_STR);

assertThat(listener.msg).endsWith(TEST_STR);
assertThat(listener.level).isEqualTo(LogListener.Level.INFO);
}

@Test
public void testCustomAppender() throws UnsupportedEncodingException {
Expand Down

0 comments on commit 86bec73

Please sign in to comment.