diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/ProjectHelperRepositoryTest.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/ProjectHelperRepositoryTest.java | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/ProjectHelperRepositoryTest.java b/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/ProjectHelperRepositoryTest.java new file mode 100644 index 00000000..550c342b --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/ProjectHelperRepositoryTest.java @@ -0,0 +1,105 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.apache.tools.ant; + +import java.io.File; + +import org.apache.tools.ant.helper.ProjectHelper2; +import org.apache.tools.ant.types.Resource; +import org.apache.tools.ant.types.resources.FileResource; +import org.apache.tools.ant.types.resources.StringResource; +import org.junit.Test; + +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +/** + * Testing around the management of the project helpers + */ +public class ProjectHelperRepositoryTest { + + public static class SomeHelper extends ProjectHelper { + public boolean canParseBuildFile(Resource buildFile) { + return buildFile instanceof FileResource + && buildFile.getName().endsWith(".myext"); + } + + public boolean canParseAntlibDescriptor(Resource r) { + return r instanceof FileResource && r.getName().endsWith(".myext"); + } + } + + @Test + public void testFind() throws Exception { + ProjectHelperRepository repo = ProjectHelperRepository.getInstance(); + repo.registerProjectHelper(SomeHelper.class); + + Resource r = new FileResource(new File("test.xml")); + ProjectHelper helper = repo.getProjectHelperForBuildFile(r); + assertTrue(helper instanceof ProjectHelper2); + helper = repo.getProjectHelperForAntlib(r); + assertTrue(helper instanceof ProjectHelper2); + + r = new FileResource(new File("test.myext")); + helper = repo.getProjectHelperForBuildFile(r); + assertTrue(helper instanceof SomeHelper); + helper = repo.getProjectHelperForAntlib(r); + assertTrue(helper instanceof SomeHelper); + + r = new StringResource("test.myext"); + helper = repo.getProjectHelperForBuildFile(r); + assertTrue(helper instanceof ProjectHelper2); + helper = repo.getProjectHelperForAntlib(r); + assertTrue(helper instanceof ProjectHelper2); + + r = new StringResource("test.other"); + helper = repo.getProjectHelperForBuildFile(r); + assertTrue(helper instanceof ProjectHelper2); + helper = repo.getProjectHelperForAntlib(r); + assertTrue(helper instanceof ProjectHelper2); + } + + @Test + public void testNoDefaultContructor() throws Exception { + + class IncrrectHelper extends ProjectHelper { + // the default constructor is not visible to ant here + } + + ProjectHelperRepository repo = ProjectHelperRepository.getInstance(); + try { + repo.registerProjectHelper(IncrrectHelper.class); + fail("Registring an helper with no default constructor should fail"); + } catch (BuildException e) { + // ok + //TODO we should be asserting a value in here + } + } + + @Test + public void testUnkwnowHelper() throws Exception { + ProjectHelperRepository repo = ProjectHelperRepository.getInstance(); + try { + repo.registerProjectHelper("xxx.yyy.zzz.UnknownHelper"); + fail("Registring an unknwon helper should fail"); + } catch (BuildException e) { + // ok + //TODO we should be asserting a value in here + } + } +} |