📄 archivebasedassemblytest.java.svn-base
字号:
/* * 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.pluto.util.assemble;import java.io.File;import junit.framework.TestCase;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * Common base test class that should be used by assembler implementations that * work with files using jar packaging (war, ear, etc.). * * This test ensures consistent behaviour across assembler implementations. */public abstract class ArchiveBasedAssemblyTest extends TestCase { private static final Log LOG = LogFactory.getLog( ArchiveBasedAssemblyTest.class ); protected void setUp() throws Exception { super.setUp(); } /** * Obtain the Assembler implementation from the subclass used * to assemble the archive. * @return the Assembler */ protected abstract Assembler getAssemblerUnderTest(); /** * Obtain the archive (war, ear) to assemble from the subclass. * @return the archive to assemble. */ protected abstract File getFileToAssemble(); public void testAssembleToNonExistantFile() throws Exception { File fileToAssemble = getFileToAssemble(); Assembler underTest = getAssemblerUnderTest(); File destFile = File.createTempFile( "jarAssemblyTest", ".tmp" ); destFile.delete(); assertFalse( "Destination file [" + destFile.getAbsolutePath() + "] already exists.", destFile.exists() ); AssemblerConfig config = prepareConfig( fileToAssemble, destFile ); LOG.debug( "Assembling [" + fileToAssemble.getAbsolutePath() + "] to file [" + destFile.getAbsolutePath() + "]" ); underTest.assemble( config ); assertTrue( "Source archive [" + fileToAssemble.getAbsolutePath() + "] doesn't exist! " + "Assembly may have deleted it by accident.", fileToAssemble.exists() ); assertTrue( "Destination directory [" + destFile.getParentFile().getAbsolutePath() + "] does not exist, " + "assembly did not complete properly.", destFile.getParentFile().exists() ); assertTrue( "Assembled war file [" + destFile + "] does not exist, " + "assembly did not complete properly.", destFile.exists() ); destFile.delete(); } public void testAssembleToDirectory() throws Exception { File fileToAssemble = getFileToAssemble(); Assembler underTest = getAssemblerUnderTest(); File tmpFile = File.createTempFile( "jarAssemblyTest", ".tmp" ); File destDir = new File( tmpFile.getParent(), tmpFile.getName() + ".dir" ); destDir.mkdir(); assertTrue( "Destination directory [" + destDir.getAbsolutePath() + "] doesn't exist.", destDir.exists() ); AssemblerConfig config = prepareConfig( fileToAssemble, destDir ); LOG.debug( "Assembling [" + fileToAssemble.getAbsolutePath() + "] to directory [" + destDir.getAbsolutePath() + "]" ); underTest.assemble( config ); File destFile = new File( destDir, fileToAssemble.getName() ); assertTrue( "Source archive doesn't exist! Assembly may have deleted it by accident.", fileToAssemble.exists() ); assertTrue( "Destination directory does not exist, assembly did not complete properly.", destDir.exists() ); assertTrue( "Assembled war file does not exist, assembly did not complete properly.", destFile.exists() ); tmpFile.delete(); destFile.delete(); destDir.delete(); } public void testAssembleToExistingFile() throws Exception { File fileToAssemble = getFileToAssemble(); Assembler underTest = getAssemblerUnderTest(); File destFile = File.createTempFile( "jarAssemblyTest", ".tmp" ); assertTrue( "Destination file [" + destFile.getAbsolutePath() + "] should already exist.", destFile.exists() ); AssemblerConfig config = prepareConfig( fileToAssemble, destFile ); LOG.debug( "Assembling [" + fileToAssemble.getAbsolutePath() + "] to file [" + destFile.getAbsolutePath() + "]" ); underTest.assemble( config ); assertTrue( "Source archive doesn't exist! Assembly may have deleted it by accident.", fileToAssemble.exists() ); assertTrue( "Assembled war file does not exist, assembly did not complete properly.", destFile.exists() ); destFile.delete(); } public void testAssembleToExistingFileInSubDirectory() throws Exception { File fileToAssemble = getFileToAssemble(); Assembler underTest = getAssemblerUnderTest(); File tmpFile = File.createTempFile( "jarAssemblyTest", ".tmp" ); File destDir = new File( tmpFile.getName() + ".dir" ); destDir.mkdirs(); File destFile = new File( destDir, fileToAssemble.getName() ); destFile.createNewFile(); assertTrue( "Destination file [" + destFile.getAbsolutePath() + "] should already exist.", destFile.exists() ); AssemblerConfig config = prepareConfig( fileToAssemble, destFile ); LOG.debug( "Assembling [" + fileToAssemble.getAbsolutePath() + "] to file [" + destFile.getAbsolutePath() + "]" ); underTest.assemble( config ); assertTrue( "Source archive doesn't exist! Assembly may have deleted it by accident.", fileToAssemble.exists() ); assertTrue( "Assembled war file does not exist, assembly did not complete properly.", destFile.exists() ); destFile.delete(); destDir.delete(); tmpFile.delete(); } private AssemblerConfig prepareConfig( File source, File dest ) { AssemblerConfig config = new AssemblerConfig(); config.setDestination( dest ); config.setSource( source ); return config; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -