blob: 2943a28c8c5963b8a1e7d5d6af32bd4872b98870 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 25.07.2011 Aaron Digulla.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Aaron Digulla - initial API and implementation and/or initial documentation
*******************************************************************************/
package m4e;
import static org.junit.Assert.*;
import org.junit.BeforeClass;
import org.junit.Test;
class ToolTest {
@BeforeClass
static void mopSetup() {
MopSetup.setup();
}
final static String HELP_OUTPUT = '''\
convert groupId:artifactId:version patches...
- Convert everything in the directory "downloads" into one big Maven
repository
The first argument is used to create a POM file with a dependencyManagement
element.
[ install | in | import | im | imp ] archives...
- Extract the specified archives and convert the Eclipse plug-ins inside
into Maven artifacts
[ merge | me ] directories... destination
- Merge several Maven repositories into one.
For safety reasons, destination must not exist.
[ attach-sources | as | attach | sources ] directories...
- Source for source JARs and move them in the right place for Maven 2
[ apply-patches | patch | ap ] target patches...
- Apply the patches to the target repository. Patches can be scripts or
directories with scripts.
[ analyze | an ] repository [ ignore ]
- Check a converted Maven 2 repository for various problems
[ dependency-management | dm ] repository groupId:artifactId:version
- Create a POM with a huge dependencyManagement element that contains all
the versions of all the artifacts in the repository
clean
- Clean the work directory
[ p2list | p2ls ] URL
- List the content of a P2 repository.
[ show | view ] repository
- Show the content of an Maven 2 repository in a Swing UI
[ download | dl ] url...
- Download one or more URLs from eclipse.org and put them into
tmp/downloads/
[ updateImportExportDB | upiedb ] repository
- Create or update an existing import/export database'''
@Test
public void testNoArguments() throws Exception {
try {
new Tool().run()
} catch( UserError e ) {
assertEquals ( 'Missing command. Valid commands are:\n' + HELP_OUTPUT, e.message )
}
}
@Test
public void testHelp() throws Exception {
boolean called = false
Tool tool = new Tool() {
void print( String text ) {
assertEquals( HELP_OUTPUT, text )
called = true
}
}
tool.run( 'help' )
assertTrue( "Help wasn't printed", called )
called = false
tool.run( '--help' )
assertTrue( "Help wasn't printed", called )
called = false
tool.run( '-h' )
assertTrue( "Help wasn't printed", called )
}
@Test
public void testClean() throws Exception {
File tmpDir = CommonTestCode.newFile( "testClean" )
assert tmpDir.deleteDir(), "Can't delete ${tmpDir}"
File workDir = new File( tmpDir, "work" )
workDir.makedirs()
File mustSurvive = new File( tmpDir, 'mustSurvive' )
File mustBeDeleted = new File( workDir, 'mustBeDeleted' )
mustSurvive << 'xxx'
mustBeDeleted << 'xxx'
new Tool( workDir: workDir ).run( 'clean' )
assert mustSurvive.exists()
assert !mustBeDeleted.exists()
assert !workDir.exists()
}
}