01: package net.sourceforge.cruisecontrol.dashboard.widgets;
02:
03: import java.util.HashMap;
04: import java.util.Arrays;
05: import java.util.List;
06:
07: import net.sourceforge.cruisecontrol.dashboard.saxhandler.BuildMessageExtractor;
08: import net.sourceforge.cruisecontrol.dashboard.saxhandler.CompositeExtractor;
09: import net.sourceforge.cruisecontrol.dashboard.saxhandler.SAXBasedExtractor;
10: import net.sourceforge.cruisecontrol.dashboard.saxhandler.StackTraceExtractor;
11: import net.sourceforge.cruisecontrol.dashboard.testhelpers.DataUtils;
12:
13: import org.jmock.cglib.MockObjectTestCase;
14:
15: public class ErrorsAndWarningsMessagesWidgetTest extends
16: MockObjectTestCase {
17:
18: public void testShouldBeAbleToParseErrorsAndWarnsFromXmlFile()
19: throws Exception {
20: ErrorsAndWarningsMessagesWidget widget = createWidget();
21: assertEquals("Errors and Warnings", widget.getDisplayName());
22: HashMap params = new HashMap();
23: params.put(Widget.PARAM_BUILD_LOG_FILE, DataUtils
24: .getFailedBuildLbuildAsFile());
25: String output = (String) widget.getOutput(params);
26: assertTrue(output.indexOf("This is my error message") != -1);
27: assertTrue(output.indexOf("This is my stacktrace") != -1);
28: assertTrue(output.indexOf("Cannot find something") != -1);
29: }
30:
31: public void testShouldBeAbleToParseErrorsAndWarnsFromZippedFile()
32: throws Exception {
33: ErrorsAndWarningsMessagesWidget widget = createWidget();
34: assertEquals("Errors and Warnings", widget.getDisplayName());
35: HashMap params = new HashMap();
36: params.put(Widget.PARAM_BUILD_LOG_FILE, DataUtils
37: .getZippedBuildAsFile());
38: String output = (String) widget.getOutput(params);
39: assertTrue(output.indexOf("This is my stacktrace") != -1);
40: assertTrue(output.indexOf("Cannot find something") != -1);
41: }
42:
43: private ErrorsAndWarningsMessagesWidget createWidget() {
44: return new ErrorsAndWarningsMessagesWidget(
45: new CompositeExtractor(handlers()));
46: }
47:
48: private List handlers() {
49: return Arrays
50: .asList(new SAXBasedExtractor[] {
51: new BuildMessageExtractor(),
52: new StackTraceExtractor() });
53: }
54: }
|