|
Ant example source code file (ScpTest.java)
The ScpTest.java source code/* * 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; } } Other Ant examples (source code examples)Here is a short list of links related to this Ant ScpTest.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.