1 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 (); 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 getTestId(ITestIdentifier test) { 43 return fIds.getTestId(test); 44 } 45 46 protected void sendFailure(TestReferenceFailure failure, String startTrace, 47 String 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 status) { 59 fSender.sendMessage(status + getTestId(test) + ',' + test.getName()); 60 } 61 62 } 63 | Popular Tags |