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);