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

📄 scptest.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 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.taskdefs.optional.ssh;import junit.framework.TestCase;import java.io.*;import java.util.List;import java.util.ArrayList;import java.util.Iterator;import org.apache.tools.ant.Project;import org.apache.tools.ant.taskdefs.condition.FilesMatch;import org.apache.tools.ant.types.FileSet;import org.apache.tools.ant.types.selectors.FilenameSelector;/** * This is a unit test for the Scp task in Ant.  It must be * configured with command line options in order for it to work. * Here are the options: * * scp.tmp              This is a local path to a temporary *                      directory for this task to use. * scp.host             This is the remote location of the form: *                      "user:password@host:/path/to/directory" * scp.port             The port of the listening SSH service. *                      Defaults to 22.  (optional) * scp.known.hosts      The file containing the public keys of known *                      hosts.  Must be a SSH2 version file, but *                      supports RSA and DSA keys. If it is not present *                      this task setTrust() to true.  (optional) */public class ScpTest extends TestCase {    private File tempDir = new File( System.getProperty("scp.tmp") );    private String sshHostUri = System.getProperty("scp.host");    private int port = Integer.parseInt( System.getProperty( "scp.port", "22" ) );    private String knownHosts = System.getProperty("scp.known.hosts");    private List cleanUpList = new ArrayList();    public ScpTest(String testname) {        super(testname);    }    protected void setUp() {        cleanUpList.clear();    }    protected void tearDown() {        for( Iterator i = cleanUpList.iterator(); i.hasNext(); ) {            File file = (File) i.next();            file.delete();        }    }    public void testSingleFileUploadAndDownload() throws IOException {        File uploadFile = createTemporaryFile();        Scp scpTask = createTask();        scpTask.setFile( uploadFile.getPath() );        scpTask.setTodir( sshHostUri );        scpTask.execute();        File testFile = new File( tempDir.getPath() + File.separator +                "download-testSingleFileUploadAndDownload.test" );        addCleanup( testFile );        assertTrue( "Assert that the testFile does not exist.",                !testFile.exists() );        scpTask.setFile( sshHostUri + "/" + uploadFile.getName() );        scpTask.setTodir( testFile.getPath() );        scpTask.execute();        assertTrue( "Assert that the testFile exists.", testFile.exists() );        compareFiles( uploadFile, testFile );    }    public void testMultiUploadAndDownload() throws IOException {        List uploadList = new ArrayList();        for( int i = 0; i < 5; i++ ) {            uploadList.add( createTemporaryFile() );        }        Scp scp = createTask();        FilenameSelector selector = new FilenameSelector();        selector.setName( "scp*" );        FileSet fileset = new FileSet();        fileset.setDir( tempDir );        fileset.addFilename( selector );        scp.addFileset( fileset );        scp.setTodir( sshHostUri );        scp.execute();        File multi = new File( tempDir, "multi" );        multi.mkdir();        addCleanup( multi );        Scp scp2 = createTask();        scp2.setFile( sshHostUri + "/scp*" );        scp2.setTodir( multi.getPath() );        scp2.execute();        FilesMatch match = new FilesMatch();        for( Iterator i = uploadList.iterator(); i.hasNext(); ) {            File f = (File)i.next();            match.setFile1( f );            File f2 = new File( multi, f.getName() );            match.setFile2( f2 );            assertTrue("Assert file '" + f.getPath() + "' and file '" +                    f2.getPath() + "'", match.eval() );        }    }    public void addCleanup( File file ) {        cleanUpList.add( file );    }    private void compareFiles(File src, File dest) {        FilesMatch match = new FilesMatch();        match.setFile1( src );        match.setFile2( dest );        assertTrue( "Assert files are equal.", match.eval() );    }    private File createTemporaryFile() throws IOException {        File uploadFile;        uploadFile = File.createTempFile( "scp", "test", tempDir );        FileWriter writer = new FileWriter( uploadFile );        writer.write("Can you hear me now?\n");        writer.close();        addCleanup( uploadFile );        return uploadFile;    }    private Scp createTask() {        Scp scp = new Scp();        Project p = new Project();        p.init();        scp.setProject( p );        if( knownHosts != null ) {            scp.setKnownhosts( knownHosts );        } else {            scp.setTrust( true );        }        scp.setPort( port );        return scp;    }}

⌨️ 快捷键说明

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