1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
package org.apache.commons.cli;
import java.math.BigDecimal;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
public class OptionBuilderTest extends TestCase {
public OptionBuilderTest( String name ) {
super( name );
}
public static Test suite() {
return new TestSuite( OptionBuilderTest.class );
}
public static void main( String args[] ) {
TestRunner.run( suite() );
}
public void testCompleteOption( ) {
OptionBuilder.withLongOpt( "simple option");
OptionBuilder.hasArg( );
OptionBuilder.isRequired( );
OptionBuilder.hasArgs( );
OptionBuilder.withType( new BigDecimal( "10" ) );
OptionBuilder.withDescription( "this is a simple option" );
Option simple = OptionBuilder.create( 's' );
assertEquals( "s", simple.getOpt() );
assertEquals( "simple option", simple.getLongOpt() );
assertEquals( "this is a simple option", simple.getDescription() );
assertEquals( simple.getType().getClass(), BigDecimal.class );
assertTrue( simple.hasArg() );
assertTrue( simple.isRequired() );
assertTrue( simple.hasArgs() );
}
public void testTwoCompleteOptions( ) {
OptionBuilder.withLongOpt( "simple option");
OptionBuilder.hasArg( );
OptionBuilder.isRequired( );
OptionBuilder.hasArgs( );
OptionBuilder.withType( new BigDecimal( "10" ) );
OptionBuilder.withDescription( "this is a simple option" );
Option simple = OptionBuilder.create( 's' );
assertEquals( "s", simple.getOpt() );
assertEquals( "simple option", simple.getLongOpt() );
assertEquals( "this is a simple option", simple.getDescription() );
assertEquals( simple.getType().getClass(), BigDecimal.class );
assertTrue( simple.hasArg() );
assertTrue( simple.isRequired() );
assertTrue( simple.hasArgs() );
OptionBuilder.withLongOpt( "dimple option");
OptionBuilder.hasArg( );
OptionBuilder.withDescription( "this is a dimple option" );
simple = OptionBuilder.create( 'd' );
assertEquals( "d", simple.getOpt() );
assertEquals( "dimple option", simple.getLongOpt() );
assertEquals( "this is a dimple option", simple.getDescription() );
assertNull( simple.getType() );
assertTrue( simple.hasArg() );
assertTrue( !simple.isRequired() );
assertTrue( !simple.hasArgs() );
}
public void testBaseOptionCharOpt() {
OptionBuilder.withDescription( "option description");
Option base = OptionBuilder.create( 'o' );
assertEquals( "o", base.getOpt() );
assertEquals( "option description", base.getDescription() );
assertTrue( !base.hasArg() );
}
public void testBaseOptionStringOpt() {
OptionBuilder.withDescription( "option description");
Option base = OptionBuilder.create( "o" );
assertEquals( "o", base.getOpt() );
assertEquals( "option description", base.getDescription() );
assertTrue( !base.hasArg() );
}
public void testSpecialOptChars() {
// '?'
try {
OptionBuilder.withDescription( "help options" );
Option opt = OptionBuilder.create( '?' );
assertEquals( "?", opt.getOpt() );
}
catch( IllegalArgumentException arg ) {
fail( "IllegalArgumentException caught" );
}
// '@'
try {
OptionBuilder.withDescription( "read from stdin" );
Option opt = OptionBuilder.create( '@' );
assertEquals( "@", opt.getOpt() );
}
catch( IllegalArgumentException arg ) {
fail( "IllegalArgumentException caught" );
}
}
public void testOptionArgNumbers() {
OptionBuilder.withDescription( "option description" );
OptionBuilder.hasArgs( 2 );
Option opt = OptionBuilder.create( 'o' );
assertEquals( 2, opt.getArgs() );
}
public void testIllegalOptions() {
// bad single character option
try {
OptionBuilder.withDescription( "option description" );
OptionBuilder.create( '"' );
fail( "IllegalArgumentException not caught" );
}
catch( IllegalArgumentException exp ) {
// success
}
// bad character in option string
try {
OptionBuilder.create( "opt`" );
fail( "IllegalArgumentException not caught" );
}
catch( IllegalArgumentException exp ) {
// success
}
// null option
try {
OptionBuilder.create( null );
fail( "IllegalArgumentException not caught" );
}
catch( IllegalArgumentException exp ) {
// success
}
// valid option
try {
OptionBuilder.create( "opt" );
// success
}
catch( IllegalArgumentException exp ) {
fail( "IllegalArgumentException caught" );
}
}
}
|