KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > jdt > internal > junit > runner > FirstRunExecutionListener


1 /*******************************************************************************
2  * Copyright (c) 2006 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  * David Saff (saff@mit.edu) - initial API and implementation
11  * (bug 102632: [JUnit] Support for JUnit 4.)
12  *******************************************************************************/

13
14 package org.eclipse.jdt.internal.junit.runner;
15
16 public class FirstRunExecutionListener implements IListensToTestExecutions {
17     protected MessageSender fSender;
18
19     private TestIdMap fIds;
20
21     FirstRunExecutionListener(MessageSender sender, TestIdMap ids) {
22         fSender = sender;
23         if (ids == null)
24             throw new NullPointerException JavaDoc();
25         fIds = ids;
26     }
27
28     public void notifyTestEnded(ITestIdentifier test) {
29         sendMessage(test, MessageIds.TEST_END);
30     }
31
32     public void notifyTestFailed(TestReferenceFailure failure) {
33         sendMessage(failure.getTest(), failure.getStatus());
34         sendFailure(failure, MessageIds.TRACE_START, MessageIds.TRACE_END);
35     }
36
37     public void notifyTestStarted(ITestIdentifier test) {
38         sendMessage(test, MessageIds.TEST_START);
39         fSender.flush();
40     }
41
42     private String JavaDoc getTestId(ITestIdentifier test) {
43         return fIds.getTestId(test);
44     }
45
46     protected void sendFailure(TestReferenceFailure failure, String JavaDoc startTrace,
47             String JavaDoc endTrace) {
48         FailedComparison comparison = failure.getComparison();
49         if (comparison != null)
50             comparison.sendMessages(fSender);
51
52         fSender.sendMessage(startTrace);
53         fSender.sendMessage(failure.getTrace());
54         fSender.sendMessage(endTrace);
55         fSender.flush();
56     }
57
58     private void sendMessage(ITestIdentifier test, String JavaDoc status) {
59         fSender.sendMessage(status + getTestId(test) + ',' + test.getName());
60     }
61
62 }
63
Popular Tags