Clover coverage report - anttestsetgen - 1.1
Coverage timestamp: zo jan 4 2004 17:34:16 CET
file stats: LOC: 136   Methods: 6
NCLOC: 88   Classes: 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
 
 Source file Conditionals Statements Methods TOTAL
JavaRenderer.java 87,5% 98,1% 100% 97%
coverage coverage
 1   
 /*
 2   
  * Copyright (C) 2003, Marco Jansen / Contrado Technologies  (http://www.contrado.nl)
 3   
  *
 4   
  * This program is free software; you can redistribute it and/or
 5   
  * modify it under the terms of the GNU General Public License as
 6   
  * published by the Free Software Foundation; either version 2 of the
 7   
  * License, or (at your option) any later version.
 8   
  *
 9   
  * This program is distributed in the hope that it will be useful, but
 10   
  * WITHOUT ANY WARRANTY; without even the implied warranty of
 11   
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12   
  * General Public License for more details.
 13   
  */
 14   
 
 15   
 package net.sourceforge.anttestsetgen.renderer;
 16   
 
 17   
 import net.sourceforge.anttestsetgen.AntTestSetGenUtil;
 18   
 import net.sourceforge.anttestsetgen.Entry;
 19   
 import net.sourceforge.anttestsetgen.Output;
 20   
 import net.sourceforge.anttestsetgen.TestSet;
 21   
 import net.sourceforge.anttestsetgen.TestSetGenerator;
 22   
 import org.apache.tools.ant.BuildException;
 23   
 import org.apache.tools.ant.Project;
 24   
 
 25   
 import java.io.BufferedWriter;
 26   
 import java.io.FileWriter;
 27   
 import java.io.IOException;
 28   
 import java.io.PrintWriter;
 29   
 import java.text.SimpleDateFormat;
 30   
 import java.util.Date;
 31   
 import java.util.Iterator;
 32   
 
 33   
 public class JavaRenderer implements Renderer {
 34   
 
 35  14
   public void render(TestSetGenerator testSetGenerator, Output output) {
 36   
 
 37  14
     AntTestSetGenUtil.requiredCheck("classname", output.getClassName());
 38   
 
 39  12
     if (!output.onlyxml()) {
 40  12
       generateJavaOutput(output, testSetGenerator);
 41   
     }
 42   
 
 43  12
     generateXMLOutput(output, testSetGenerator);
 44   
   }
 45   
 
 46  12
   private void generateJavaOutput(Output output, TestSetGenerator testSetGenerator) {
 47  12
     String directory = AntTestSetGenUtil.convertPackageToPath(output.getDestination(), output.getPackageName());
 48  12
     AntTestSetGenUtil.mkdirs(directory);
 49  12
     String fileName = directory + "/" + output.getClassName() + ".java";
 50   
 
 51  12
     try {
 52   
 
 53  12
       PrintWriter javaFile = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));
 54   
 
 55  12
       printHeader(testSetGenerator, output, javaFile);
 56  12
       printTestSets(testSetGenerator, javaFile);
 57  12
       printFooter(output, javaFile);
 58   
 
 59  12
       javaFile.close();
 60   
 
 61  12
       testSetGenerator.log("TestSet rendered to Java Class " + fileName, Project.MSG_INFO);
 62   
 
 63   
     } catch (IOException e) {
 64  0
       throw new BuildException("Could not create Java Class: " + fileName);
 65   
     }
 66   
   }
 67   
 
 68   
   /**
 69   
    * Print the header of the property file.
 70   
    * 
 71   
    * @param javaFile The property file where the header needs to be added to
 72   
    */
 73  12
   private static void printHeader(TestSetGenerator testSetGenerator, Output output, PrintWriter javaFile) {
 74  12
     SimpleDateFormat dateFormat = new SimpleDateFormat();
 75  12
     Date currentDate = new Date(System.currentTimeMillis());
 76   
 
 77  12
     javaFile.println("/**");
 78  12
     javaFile.println(" * Generated by: Ant TestSetGenerator");
 79  12
     javaFile.println(" *");
 80  12
     javaFile.println(" * Generated on: " + dateFormat.format(currentDate));
 81  12
     javaFile.println(" * URL: " + testSetGenerator.getUrl());
 82  12
     javaFile.println(" * Userid: " + testSetGenerator.getUserId());
 83  12
     javaFile.println(" */");
 84  12
     javaFile.println("");
 85  12
     javaFile.println("package " + output.getPackageName() + ";");
 86  12
     javaFile.println("");
 87  12
     javaFile.println("import com.thoughtworks.xstream.XStream;");
 88  12
     javaFile.println("import net.sourceforge.anttestsetgen.AntTestSetGenUtil;");
 89  12
     javaFile.println("");
 90  12
     javaFile.println("public class " + output.getClassName() + " {");
 91   
   }
 92   
 
 93   
   /**
 94   
    * Print the results of a test set.
 95   
    * 
 96   
    * @param javaFile The property files where the results needs to be added to
 97   
    */
 98  12
   private static void printTestSets(TestSetGenerator testSetGenerator, PrintWriter javaFile) {
 99  12
     for (Iterator iterator = testSetGenerator.getTestSets().iterator(); iterator.hasNext();) {
 100  24
       TestSet testSet = (TestSet) iterator.next();
 101   
 
 102  24
       javaFile.println("");
 103  24
       javaFile.println("  // " + testSet.getName());
 104   
 
 105  24
       for (int i = 0; i < testSet.getEntries().size(); i++) {
 106  48
         Entry entry = (Entry) testSet.getEntries().get(i);
 107   
 
 108  48
         if (TestSet.SELECT_FIRST_ROW.equals(testSet.getRowtoselect())) {
 109  24
           javaFile.println("  public static " + entry.getJavaType() + " " + entry.getKey() + ";");
 110   
         } else {
 111  24
           javaFile.println("  public static " + entry.getJavaType() + "[] " + entry.getKey() + ";");
 112   
         }
 113   
       }
 114   
     }
 115   
   }
 116   
 
 117  12
   private void printFooter(Output output, PrintWriter javaFile) {
 118  12
     javaFile.println("");
 119  12
     javaFile.println("  static {");
 120  12
     javaFile.println("    XStream xstream = new XStream();");
 121  12
     javaFile.println("    xstream.alias(\"" + output.getClassName() + "\", " + output.getClassName() + ".class);");
 122  12
     javaFile.println("    xstream.fromXML(AntTestSetGenUtil.readFile(\"" + output.getClassName() + ".xml\"));");
 123  12
     javaFile.println("  }");
 124  12
     javaFile.println("");
 125  12
     javaFile.println("}");
 126   
   }
 127   
 
 128  12
   private void generateXMLOutput(Output output, TestSetGenerator testSetGenerator) {
 129  12
     Output xmlOutput = new Output();
 130  12
     xmlOutput.setFile(output.getDestination() + "/" + output.getClassName() + ".xml");
 131  12
     xmlOutput.setRoot(output.getClassName());
 132  12
     new XMLRenderer().render(testSetGenerator, xmlOutput);
 133   
   }
 134   
 
 135   
 }
 136