blob: 9a717056383c4c862ae32faad27fba979808a2f1 [file] [log] [blame]
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* JFlex 1.4.3 *
* Copyright (C) 1998-2009 Gerwin Klein <lsf@jflex.de> *
* All rights reserved. *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License. See the file *
* COPYRIGHT for more information. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License along *
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
package JFlex.tests;
import java.io.File;
import java.io.IOException;
import JFlex.Options;
import JFlex.anttask.JFlexTask;
import junit.framework.TestCase;
/**
* Unit tests for the jflex ant task.
*
* @author Gerwin Klein
* @version $Revision: 1.4.3 $, $Date: 2009/12/21 15:58:48 $
*/
public class AntTaskTests extends TestCase {
private JFlexTask task;
/**
* Constructor for AntTaskTests.
*
* @param name test case name
*/
public AntTaskTests(String name) {
super(name);
}
/*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
Options.setDefaults();
task = new JFlexTask();
}
public void testPackageAndClass() throws IOException {
task.setFile(new File("src/JFlex/LexScan.flex"));
task.findPackageAndClass();
assertEquals(task.getPackage(), "JFlex");
assertEquals(task.getClassName(), "LexScan");
}
public void testPackageAndClassDefaults() throws IOException {
task.setFile(new File("examples/simple/simple.flex"));
task.findPackageAndClass();
assertEquals(task.getPackage(), null);
assertEquals(task.getClassName(), "Yylex");
}
public void testDestdir() throws IOException {
task.setFile(new File("src/JFlex/LexScan.flex"));
File dir = new File("src");
task.setDestdir(dir);
task.findPackageAndClass();
task.normalizeOutdir();
// not default jflex logic, but javac (uses package name)
assertEquals(Options.getDir(), new File(dir, "JFlex"));
}
public void testOutdir() throws IOException {
task.setFile(new File("src/JFlex/LexScan.flex"));
File dir = new File("src");
task.setOutdir(dir);
task.findPackageAndClass();
task.normalizeOutdir();
// this should be default jflex logic
assertEquals(Options.getDir(), dir);
}
public void testDefaultDir() throws IOException {
task.setFile(new File("src/JFlex/LexScan.flex"));
task.findPackageAndClass();
task.normalizeOutdir();
// this should be default jflex logic
assertEquals(Options.getDir(), new File("src/JFlex"));
}
public void testNomin() {
assertTrue(!Options.no_minimize);
task.setNomin(true);
assertTrue(Options.no_minimize);
}
public void testSkipMinimization() {
assertTrue(!Options.no_minimize);
task.setSkipMinimization(true);
assertTrue(Options.no_minimize);
}
public void testNobak() {
assertTrue(!Options.no_backup);
task.setNobak(true);
assertTrue(Options.no_backup);
}
public void testCodeGen() {
task.setSwitch(true);
assertEquals(Options.gen_method, Options.SWITCH);
task.setTable(true);
assertEquals(Options.gen_method, Options.TABLE);
task.setPack(true);
assertEquals(Options.gen_method, Options.PACK);
}
public void testSkel() {
task.setVerbose(false); // avoid to java console pop up
task.setSkeleton(new File("src/skeleton.nested"));
assertTrue(JFlex.Skeleton.line[3].indexOf("java.util.Stack") > 0);
}
public void testVerbose() {
task.setVerbose(false);
assertTrue(!Options.verbose);
task.setVerbose(true);
assertTrue(Options.verbose);
}
public void testTime() {
assertTrue(!Options.time);
task.setTimeStatistics(true);
assertTrue(Options.time);
task.setTime(false);
assertTrue(!Options.time);
}
public void testDot() {
assertTrue(!Options.dot);
task.setDot(true);
assertTrue(Options.dot);
task.setGenerateDot(false);
assertTrue(!Options.dot);
}
public void testDump() {
assertTrue(!Options.dump);
task.setDump(true);
assertTrue(Options.dump);
}
public void testJlex() {
assertTrue(!Options.jlex);
task.setJLex(true);
assertTrue(Options.jlex);
}
}