]> source.dussan.org Git - sonarqube.git/commitdiff
Fix Quality flaws in batch
authorDuarte Meneses <duarte.meneses@sonarsource.com>
Wed, 24 Jun 2015 14:10:14 +0000 (16:10 +0200)
committerDuarte Meneses <duarte.meneses@sonarsource.com>
Wed, 24 Jun 2015 14:10:28 +0000 (16:10 +0200)
sonar-batch/src/test/java/org/sonar/batch/bootstrap/PersistentCacheProviderTest.java
sonar-batch/src/test/java/org/sonar/batch/bootstrapper/LogCallbackAppenderTest.java
sonar-batch/src/test/java/org/sonar/batch/bootstrapper/LoggingConfiguratorTest.java

index 24bdf6047d57b68710e6e89f04b2d014c3e15a0f..813c5efce7045336c781abb006cf477692ea20f8 100644 (file)
@@ -55,4 +55,9 @@ public class PersistentCacheProviderTest {
     provider = new PersistentCacheProvider();
     assertThat(provider.provide(props).isForceUpdate()).isFalse();
   }
+  
+  @Test
+  public void test_reconfigure() {
+    
+  }
 }
index ea1fd3a470e4499a44e61efc9a75ead3c4652ccf..b01b214e345f37f752612a4d04927b11d9030506 100644 (file)
@@ -24,6 +24,8 @@ import static org.mockito.Mockito.when;
 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;
@@ -39,21 +41,32 @@ 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);
   }
 
@@ -61,6 +74,6 @@ public class LogCallbackAppenderTest {
   public void testChangeTarget() {
     listener = mock(LogListener.class);
     appender.setTarget(listener);
-    testAppendLog();
+    testLevelTranslation();
   }
 }
index 2f7311a39de484b57826a02c2d640d68728df8cb..5e139684e190a1ad15db77bfb8e49106a3d39dd6 100644 (file)
  */
 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;
@@ -34,10 +42,13 @@ import org.junit.Test;
 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() {
@@ -56,6 +67,25 @@ public class LoggingConfiguratorTest {
       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 {