📄 scptest.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 + -