/* * * Copyright 2002-2004 The Ant-Contrib project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.sf.antcontrib.cpptasks; import java.io.File; import junit.framework.TestCase; import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration; import net.sf.antcontrib.cpptasks.compiler.ProgressMonitor; import org.apache.tools.ant.BuildException; import net.sf.antcontrib.cpptasks.VersionInfo; /** * A description of a file built or to be built */ public class TestTargetInfo extends TestCase { private class DummyConfiguration implements CompilerConfiguration { public int bid(String filename) { return 1; } public void close() { } public void compile(CCTask task, File workingDir, String[] source, boolean relentless, ProgressMonitor monitor) throws BuildException { throw new BuildException("Not implemented"); } public CompilerConfiguration[] createPrecompileConfigurations( File file, String[] exceptFiles) { return null; } public String getIdentifier() { return "dummy"; } public String[] getIncludeDirectories() { return new String[0]; } public String getIncludePathIdentifier() { return "dummyIncludePath"; } public String[] getOutputFileNames(String inputFile, VersionInfo versionInfo) { return new String[0]; } public CompilerParam getParam(String name) { return null; } public ProcessorParam[] getParams() { return new ProcessorParam[0]; } public boolean getRebuild() { return false; } public boolean isPrecompileGeneration() { return true; } public DependencyInfo parseIncludes(CCTask task, File baseDir, File file) { return null; } } public TestTargetInfo(String name) { super(name); } public void testConstructorNullConfig() { try { new TargetInfo(null, new File[]{new File("")}, null, new File(""), false); fail("Didn't throw exception"); } catch (NullPointerException ex) { } } public void testConstructorNullOutput() { CompilerConfiguration config = new DummyConfiguration(); try { new TargetInfo(config, new File[]{new File("")}, null, null, false); fail("Didn't throw exception"); } catch (NullPointerException ex) { } } public void testConstructorNullSource() { CompilerConfiguration config = new DummyConfiguration(); try { new TargetInfo(config, null, null, new File(""), false); fail("Didn't throw exception"); } catch (NullPointerException ex) { } } public void testGetRebuild() { CompilerConfiguration config = new DummyConfiguration(); TargetInfo targetInfo = new TargetInfo(config, new File[]{new File( "FoO.BaR")}, null, new File("foo.o"), false); assertEquals(false, targetInfo.getRebuild()); targetInfo = new TargetInfo(config, new File[]{new File("FoO.BaR")}, null, new File("foo.o"), true); assertEquals(true, targetInfo.getRebuild()); } public void testGetSource() { CompilerConfiguration config = new DummyConfiguration(); TargetInfo targetInfo = new TargetInfo(config, new File[]{new File( "FoO.BaR")}, null, new File("foo.o"), false); String source = targetInfo.getSources()[0].getName(); assertEquals(source, "FoO.BaR"); } public void testHasSameSource() { CompilerConfiguration config = new DummyConfiguration(); TargetInfo targetInfo = new TargetInfo(config, new File[]{new File( "foo.bar")}, null, new File("foo.o"), false); boolean hasSame = targetInfo.getSources()[0] .equals(new File("foo.bar")); assertTrue(hasSame); hasSame = targetInfo.getSources()[0].equals(new File("boo.far")); assertEquals(hasSame, false); } public void testMustRebuild() { CompilerConfiguration config = new DummyConfiguration(); TargetInfo targetInfo = new TargetInfo(config, new File[]{new File( "FoO.BaR")}, null, new File("foo.o"), false); assertEquals(false, targetInfo.getRebuild()); targetInfo.mustRebuild(); assertEquals(true, targetInfo.getRebuild()); } }