You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2016/02/04 14:51:19 UTC

svn commit: r1728479 - /sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/SlingRequestProgressTrackerTest.java

Author: bdelacretaz
Date: Thu Feb  4 13:51:19 2016
New Revision: 1728479

URL: http://svn.apache.org/viewvc?rev=1728479&view=rev
Log:
SLING-5275 - improve test coverage before making changes

Modified:
    sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/SlingRequestProgressTrackerTest.java

Modified: sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/SlingRequestProgressTrackerTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/SlingRequestProgressTrackerTest.java?rev=1728479&r1=1728478&r2=1728479&view=diff
==============================================================================
--- sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/SlingRequestProgressTrackerTest.java (original)
+++ sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/SlingRequestProgressTrackerTest.java Thu Feb  4 13:51:19 2016
@@ -16,24 +16,40 @@
  */
 package org.apache.sling.engine.impl.request;
 
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.junit.Assert.assertEquals;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringReader;
+import java.io.StringWriter;
 import java.util.Iterator;
 
+import org.junit.Before;
 import org.junit.Test;
 
 public class SlingRequestProgressTrackerTest {
 
-    @Test
-    public void messageFormatting() {
-        final SlingRequestProgressTracker tracker = new SlingRequestProgressTracker();
+    private SlingRequestProgressTracker tracker;
+    
+    @Before
+    public void setup() {
+        tracker = new SlingRequestProgressTracker();
+    }
+    
+    private void addTestData() {
         tracker.startTimer("foo");
         tracker.log("one {0}, two {1}, three {2}", "eins", "zwei", "drei");
         tracker.startTimer("bar");
         tracker.logTimer("bar");
         tracker.logTimer("foo");
         tracker.done();
-
+    }
+    
+    @Test
+    public void messageFormatting() {
         final String[] expected = {
                 "TIMER_START{Request Processing}\n",
                 "COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message>\n",
@@ -45,6 +61,7 @@ public class SlingRequestProgressTracker
                 "TIMER_END{?,Request Processing} Request Processing\n"
         };
 
+        addTestData();
         final Iterator<String> messages = tracker.getMessages();
         int messageCounter = 0;
         while (messages.hasNext()) {
@@ -61,6 +78,56 @@ public class SlingRequestProgressTracker
 
         assertEquals(expected.length, messageCounter);
     }
+    
+    @Test
+    public void dump() throws IOException {
+        addTestData();
+        final StringWriter w = new StringWriter();
+        tracker.dump(new PrintWriter(w));
+        w.flush();
+        final String result = w.toString();
+        
+        final String [] expected = {
+                "TIMER_START{Request Processing}",
+                "TIMER_START{foo}",
+                "Dumping SlingRequestProgressTracker Entries"
+        };
+        for(String exp : expected) {
+            if(!result.contains(exp)) {
+                fail("Expected result to contain [" + exp + "] but was [" + result + "]");
+            }
+        }
+        
+        int lineCount = 0;
+        final BufferedReader br = new BufferedReader(new StringReader(result));
+        while(br.readLine() != null) {
+            lineCount++;
+        }
+        assertEquals(9, lineCount);
+    }
+    
+    @Test
+    public void duration() throws InterruptedException {
+        Thread.sleep(50);
+        tracker.log("after the wait");
+        assertTrue(tracker.getDuration() >= 50);
+    }
+    
+    @Test
+    public void durationWithDone() throws InterruptedException {
+        Thread.sleep(25);
+        tracker.done();
+        final long d = tracker.getDuration();
+        assertTrue(d >= 25);
+        Thread.sleep(25);
+        tracker.log("Some more stuff");
+        assertEquals(d, tracker.getDuration());
+    }
+    
+    @Test(expected=UnsupportedOperationException.class)
+    public void removeFails() {
+        tracker.getMessages().remove();
+    }
 
     private String substringAfter(String string, char ch) {
         final int pos = string.indexOf(ch);