package com.codecrate.testdox; import com.thoughtworks.qdox.model.JavaClass; import com.thoughtworks.qdox.model.JavaMethod; public class TestDoxFormatter { private static final String CLASS_SUFFIX = "Test"; private static final String METHOD_PREFIX = "test"; public String prettifyTestClassName(String className) { className = trimPackagePrefix(className); className = trimTestSuffix(className); return toHumaneString(className); } public String prettifyTestMethodName(String testMethod) { testMethod = trimTestPrefix(testMethod); return toHumaneString(testMethod); } private String toHumaneString(String input) { StringBuffer buffer = new StringBuffer(); for (int x = 0; x < input.length(); x++) { char ch = input.charAt(x); if (x != 0 && Character.isUpperCase(ch)) { buffer.append(" "); buffer.append(Character.toLowerCase(ch)); } else { buffer.append(ch); } } return buffer.toString(); } private String trimTestPrefix(String testMethod) { if (testMethod.startsWith(METHOD_PREFIX)) { testMethod = testMethod.substring(METHOD_PREFIX.length()); } return testMethod; } private String trimTestSuffix(String className) { if (className.endsWith(CLASS_SUFFIX)) { className = className.substring(0, className.lastIndexOf(CLASS_SUFFIX)); } return className; } private String trimPackagePrefix(String className) { if (className.lastIndexOf(".") != -1) { className = className.substring(className.lastIndexOf(".") + 1); } return className; } public boolean isATestMethod(JavaMethod method) { String name = method.getName(); return name.startsWith(METHOD_PREFIX); } public boolean isTestClass(JavaClass clazz) { String name = clazz.getName(); return name.endsWith(CLASS_SUFFIX); } }