package junit.extensions.eclipse.quick.notifications.internal;
import org.eclipse.jdt.junit.model.ITestRunSession;
import static junit.extensions.eclipse.quick.notifications.internal.TemplateKey.*;
class TemplateParser {
private String template;
private TestCounter counter = new TestCounter();
public TemplateParser() {
}
public String parseTemplate(ITestRunSession session) {
String result = null;
result = replaceResult(session,template);
result = replaceCount(session,result);
return result;
}
private String replaceCount(ITestRunSession session, String result) {
counter.count(session);
result = result.replaceAll(key(TOTAL_COUNT), String.valueOf(counter.getTotalTests()));
result = result.replaceAll(key(OK_COUNT), String.valueOf(counter.getOKTests()));
result = result.replaceAll(key(FAIL_COUNT), String.valueOf(counter.getFailureTests()));
// result = result.replaceAll(key(IGNORE_COUNT), String.valueOf(counter.getIgnoreTests()));
result = result.replaceAll(key(ERROR_COUNT), String.valueOf(counter.getErrorTests()));
return result;
}
private String replaceResult(ITestRunSession session,String target) {
String result = target.replaceAll(key(RESULT_COUNT), session.getTestResult(true).toString());
return result;
}
private String key(TemplateKey key){
return key.regexKey();
}
public void setTemplate(String template) {
this.template = template;
}
void setCounter(TestCounter counter) {
this.counter = counter;
}
}