FileDocCategorySizeDatePackage
AxisFileGenTestBase.javaAPI DocApache Axis 1.43612Sat Apr 22 18:57:28 BST 2006test

AxisFileGenTestBase

public abstract class AxisFileGenTestBase extends AxisTestBase
base class for Axis FileGen test cases.

Fields Summary
Constructors Summary
public AxisFileGenTestBase(String s)

        super(s);
    
Methods Summary
protected java.lang.String[]getPaths(java.io.File root, java.lang.String parent)
This method returns a array of String file paths, located within the supplied root directory. The string values are created relative to the specified parent so that the names get returned in the form of "file.java", "dir/file.java", "dir/dir/file.java", etc. This feature asslows the various file specs to include files in sub-directories as well as the root directory.

        File files[] = root.listFiles();
        if (files == null)
            fail("Unable to get a list of files from " + root.getPath());

        Set filePaths = new HashSet();
        for(int i=0; i<files.length; i++) {
            if (files[i].isDirectory()) {
                String children[] = getPaths(files[i],
                            getPrefix(parent) + files[i].getName());
                filePaths.addAll(Arrays.asList(children));
            }
            else {
                filePaths.add(getPrefix(parent) + files[i].getName());
            }
        }
        String paths[] = new String[filePaths.size()];
        return (String[]) filePaths.toArray(paths);
    
protected java.lang.StringgetPrefix(java.lang.String parent)

        if (parent == null || parent.length() == 0) {
            return "";
        }
        else {
            return parent + File.separator;
        }
    
protected abstract java.util.SetmayExist()

protected abstract java.lang.StringrootDir()

protected abstract java.util.SetshouldExist()

public voidtestFileGen()

        String rootDir = rootDir();
        Set shouldExist = shouldExist();
        Set mayExist = mayExist();

        // open up the output directory and check what files exist.
        File outputDir = new File(rootDir);

        String[] files = getPaths(outputDir, null);

        Vector shouldNotExist = new Vector();

        for (int i = 0; i < files.length; ++i) {
            if (shouldExist.contains(files[i])) {
                shouldExist.remove(files[i]);
            }
            else if (mayExist.contains(files[i])) {
                mayExist.remove(files[i]);
            }
            else {
                shouldNotExist.add(files[i]);
            }
        }

        if (shouldExist.size() > 0) {
            fail("The following files should exist in " + rootDir +
                ", but do not:  " + shouldExist);
        }

        if (shouldNotExist.size() > 0) {
            fail("The following files should NOT exist in " + rootDir +
                ", but do:  " + shouldNotExist);
        }