private static JavaCodeWriter getWriter(ClassBean classBean) throws IOException { String packagePath = classBean.getPackageName(); packagePath = packagePath.replace('.', '/'); File packageDirs = new File(outDir, packagePath); packageDirs.mkdirs(); File testFile = new File(packageDirs.getAbsoluteFile(), classBean.getName() + ".java"); if (testFile.exists()) { System.out.println("File already exists"); return null; } BufferedWriter out = new BufferedWriter(new FileWriter(testFile, false)); return new JavaCodeWriter(out); }
public static boolean start(RootDoc root) { try { init(root); ClassDoc[] classes = root.classes(); ArrayList<String> generatesTestClasses = new ArrayList<String>(); for (int i = 0; i < classes.length; i++) { ClassDoc classDoc = classes[i]; if (classDoc.isAbstract() || classDoc.isInterface() || classDoc.isEnum() || classDoc.isPrivate() || classDoc.isAnnotationType()) { } else if (!hasDefaultConstructor(classDoc)) { System.out.println(classDoc.qualifiedTypeName() + " does not have default Constructor."); } else { ClassBean testClassBean = ClassBeanCreator.create(classDoc); if (testClassBean.hasMethods()) { JavaCodeWriter writer = getWriter(testClassBean); if (writer != null) { JavaCodeGenerator.generate(testClassBean, writer); generatesTestClasses.add(classDoc.qualifiedTypeName()); writer.close(); } } else { System.out.println( classDoc.qualifiedTypeName() + " does not have any methods to cover."); } } } System.out.println("---------REPORT-----------------------------------------------"); for (Iterator iterator = generatesTestClasses.iterator(); iterator.hasNext(); ) { String clsName = (String) iterator.next(); System.out.println("\t" + clsName); } System.out.println("-------------------------------------------------------------"); return true; } catch (Exception e) { e.printStackTrace(); return false; } }