⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filtersettest.java

📁 java ant的源码!非常值得看的源码
💻 JAVA
字号:
/* *  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.types;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.Hashtable;import org.apache.tools.ant.BuildFileTest;/** * FilterSet testing * */public class FilterSetTest extends BuildFileTest {    static private final int BUF_SIZE = 32768;    public FilterSetTest(String name) {        super(name);    }    public void setUp() {        configureProject("src/etc/testcases/types/filterset.xml");    }    public void tearDown() {        executeTarget("cleanup");    }    public void test1() {        executeTarget("test1");        assertTrue("Filterset 1 failed", compareFiles("src/etc/testcases/types/gold/filterset1.txt",                                                      "src/etc/testcases/types/dest1.txt"));    }    public void test2() {        executeTarget("test2");        assertTrue("Filterset 2 failed", compareFiles("src/etc/testcases/types/gold/filterset2.txt",                                                      "src/etc/testcases/types/dest2.txt"));    }    public void test3() {        executeTarget("test3");        assertTrue("Filterset 3 failed", compareFiles("src/etc/testcases/types/gold/filterset3.txt",                                                      "src/etc/testcases/types/dest3.txt"));    }    /**     * This will test the recursive FilterSet.  Which means that if     * the filter value @test@ contains another filter value, it will     * actually resolve.     */    public void testRecursive() {        String result = "it works line";        String line="@test@ line";        FilterSet fs = new FilterSet();        fs.addFilter("test", "@test1@");        fs.addFilter("test1","@test2@");        fs.addFilter("test2", "it works");        fs.setBeginToken("@");        fs.setEndToken("@");        assertEquals(result, fs.replaceTokens(line));    }    /**     * Test to see what happens when the resolving occurs in an     * infinite loop.     */    public void testInfinite() {        String result = "@test@ line testvalue";        String line = "@test@ line @test3@";        FilterSet fs = new FilterSet();        fs.addFilter("test", "@test1@");        fs.addFilter("test1","@test2@");        fs.addFilter("test2", "@test@");        fs.addFilter("test3", "testvalue");        fs.setBeginToken("@");        fs.setEndToken("@");        assertEquals(result, fs.replaceTokens(line));    }    /**     * Test to see what happens when the resolving occurs in     * what would be an infinite loop, but with recursion disabled.     */    public void testRecursionDisabled() {        String result = "@test1@ line testvalue";        String line = "@test@ line @test2@";        FilterSet fs = new FilterSet();        fs.addFilter("test", "@test1@");        fs.addFilter("test1","@test@");        fs.addFilter("test2", "testvalue");        fs.setBeginToken("@");        fs.setEndToken("@");        fs.setRecurse(false);        assertEquals(result, fs.replaceTokens(line));    }    public void testNonInfiniteRecursiveMultipleOnSingleLine() {        FilterSet filters = new FilterSet();        filters.setBeginToken("<");        filters.setEndToken(">");        filters.addFilter("ul", "<itemizedlist>");        filters.addFilter("/ul", "</itemizedList>");        filters.addFilter("li", "<listitem>");        filters.addFilter("/li", "</listitem>");        String result = "<itemizedlist><listitem>Item 1</listitem> <listitem>Item 2</listitem></itemizedList>";        String line = "<ul><li>Item 1</li> <li>Item 2</li></ul>";        assertEquals(result, filters.replaceTokens(line));    }        public void testNestedFilterSets() {        executeTarget("test-nested-filtersets");        FilterSet fs = (FilterSet) getProject().getReference("1");        Hashtable filters = fs.getFilterHash();        assertEquals(1, filters.size());        assertEquals("value1", filters.get("token1"));        fs = (FilterSet) getProject().getReference("2");        filters = fs.getFilterHash();        assertEquals(2, filters.size());        assertEquals("1111", filters.get("aaaa"));        assertEquals("2222", filters.get("bbbb"));        fs = (FilterSet) getProject().getReference("3");        filters = fs.getFilterHash();        assertEquals(1, filters.size());        assertEquals("value4", filters.get("token4"));        fs = (FilterSet) getProject().getReference("5");        filters = fs.getFilterHash();        assertEquals(1, filters.size());        assertEquals("value1", filters.get("token1"));    }    public void testFiltersFileElement() {        executeTarget("testFiltersFileElement");    }    public void testFiltersFileAttribute() {        executeTarget("testFiltersFileAttribute");    }    public void testMultipleFiltersFiles() {        executeTarget("testMultipleFiltersFiles");    }    public void testMissingFiltersFile() {        expectBuildException("testMissingFiltersFile",            "should fail due to missing filtersfile");    }    public void testAllowMissingFiltersFile() {        executeTarget("testAllowMissingFiltersFile");    }    private boolean compareFiles(String name1, String name2) {        File file1 = new File(System.getProperty("root"), name1);        File file2 = new File(System.getProperty("root"), name2);        try {            if (!file1.exists() || !file2.exists()) {                System.out.println("One or both files do not exist:" + name1 + ", " + name2);                return false;            }            if (file1.length() != file2.length()) {                System.out.println("File size mismatch:" + name1 + "(" + file1.length() + "), " +                                   name2  + "(" + file2.length() + ")");                return false;            }            // byte - byte compare            byte[] buffer1 = new byte[BUF_SIZE];            byte[] buffer2 = new byte[BUF_SIZE];            FileInputStream fis1 = new FileInputStream(file1);            FileInputStream fis2 = new FileInputStream(file2);            int index = 0;            int read = 0;            while ((read = fis1.read(buffer1)) != -1) {                fis2.read(buffer2);                for (int i = 0; i < read; ++i, ++index) {                    if (buffer1[i] != buffer2[i]) {                        System.out.println("Bytes mismatch:" + name1 + ", " + name2 +                                           " at byte " + index);                        return false;                    }                }            }            return true;        }        catch (IOException e) {            System.out.println("IOException comparing files: " + name1 + ", " + name2);            return false;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -