1 23 24 29 30 package com.sun.cli.jmx.cmd; 31 32 import java.util.Arrays ; 33 import java.util.ListIterator ; 34 35 import junit.framework.TestCase; 36 import com.sun.cli.util.stringifier.SmartStringifier; 37 import com.sun.cli.util.stringifier.ArrayStringifier; 38 39 public class ArgHelperTest extends TestCase 40 { 41 private static void 42 dm( Object msg ) 43 { 44 System.out.println( SmartStringifier.toString( msg ) ); 45 } 46 47 public 48 ArgHelperTest( String name ) 49 { 50 super( name ); 51 } 52 53 54 55 ArgHelper 56 setupArgHelper( int startOffset, String options, String input) 57 throws Exception 58 { 59 final ArgHelperOptionsInfo optionsInfo = new ArgHelperOptionsInfo(); 60 61 if ( options != null ) 62 { 63 optionsInfo.addOptions( options ); 64 } 65 66 final String [] tokens = (input.length() == 0) ? 67 new String [0] : input.split( "" + ArgHelperOptionsInfo.MULTIPLE_DELIM ); 68 69 final ListIterator iter = Arrays.asList( tokens ).listIterator( startOffset ); 70 final ArgHelper argHelper = new ArgHelperImpl( iter, optionsInfo ); 71 72 return( argHelper ); 73 } 74 75 ArgHelper 76 setupArgHelper( String options, String input) 77 throws Exception 78 { 79 return( setupArgHelper( 0, options, input ) ); 80 } 81 82 83 85 public void 86 testNoOptionsOrOperands() 87 throws Exception 88 { 89 final ArgHelper argHelper = setupArgHelper( null, "" ); 90 91 assertEquals( "expected no options", 0, argHelper.countOptions() ); 92 assertEquals( "expected no operands", 0, argHelper.getOperands().length ); 93 } 94 95 96 public void 97 testBooleanWithoutArg() 98 throws Exception 99 { 100 final String booleanOptions = "testbool"; 101 final String input = "--testbool"; 102 103 final ArgHelper argHelper = setupArgHelper( booleanOptions, input ); 104 105 final Boolean value = argHelper.getBoolean( booleanOptions, null ); 106 assertEquals( "expected true from " + input, Boolean.TRUE, value ); 107 } 108 109 110 public void 111 testBooleanWithInlineArgFalse() 112 throws Exception 113 { 114 final String booleanOptions = "testbool"; 115 final String input = "--testbool=false"; 116 117 final ArgHelper argHelper = setupArgHelper( booleanOptions, input ); 118 119 final Boolean value = argHelper.getBoolean( booleanOptions, null ); 120 assertEquals( "expected FALSE from " + input, Boolean.FALSE, value ); 121 } 122 123 public void 124 testBooleanWithInlineArgTrue() 125 throws Exception 126 { 127 final String booleanOptions = "testbool"; 128 final String input = "--testbool=true"; 129 130 final ArgHelper argHelper = setupArgHelper( booleanOptions, input ); 131 132 final Boolean value = argHelper.getBoolean( booleanOptions, null ); 133 assertEquals( "expected TRUE from " + input, Boolean.TRUE, value ); 134 } 135 136 137 public void 138 testBooleanFailureWithSeparateArgTrue() 139 throws Exception 140 { 141 final String booleanOptions = "testbool"; 142 final String input = "--testbool true"; 144 final ArgHelper argHelper = setupArgHelper( booleanOptions, input ); 145 146 final Boolean value = argHelper.getBoolean( booleanOptions, null ); 147 assertEquals( "expected 1 operand from: " + input, 1, argHelper.getOperands().length ); 148 assertEquals( "expected 1 option from: " + input, 1, argHelper.countOptions() ); 149 } 150 151 public void 152 testBooleanFailureWithSeparateArg() 153 throws Exception 154 { 155 final String booleanOptions = "testbool"; 156 final String input = "--testbool false"; 158 final ArgHelper argHelper = setupArgHelper( booleanOptions, input ); 159 160 final Boolean value = argHelper.getBoolean( booleanOptions, null ); 161 assertEquals( "expected 1 operand from: " + input, 1, argHelper.getOperands().length ); 162 assertEquals( "expected 1 option from: " + input, 1, argHelper.countOptions() ); 163 } 164 165 166 public void 167 testMultipleBooleans() 168 throws Exception 169 { 170 final String booleanOptions = "b1 b2 b3 b4"; 171 final String input = "--b1 --b2=false --b3 --b4=false"; 172 173 final ArgHelper argHelper = setupArgHelper( booleanOptions, input ); 174 175 assertEquals( "expected b1 to be true from: " + input, 176 Boolean.TRUE, argHelper.getBoolean( "b1", null ) ); 177 178 assertEquals( "expected b2 to be false from: " + input, 179 Boolean.FALSE, argHelper.getBoolean( "b2", null ) ); 180 181 assertEquals( "expected b3 to be true from: " + input, 182 Boolean.TRUE, argHelper.getBoolean( "b3", null ) ); 183 184 assertEquals( "expected b4 to be false from: " + input, 185 Boolean.FALSE, argHelper.getBoolean( "b4", null ) ); 186 } 187 188 189 190 public void 192 testBooleanFailureWithEquals( ) 193 throws Exception 194 { 195 final String booleanOptions = "b1"; 196 final String input = "--b1=hello"; 197 198 try 199 { 200 ArgHelper argHelper = setupArgHelper( booleanOptions, input ); 201 argHelper.getBoolean( "b1", null ); 202 fail( "expecte this input to fail for boolean: " + input ); 203 } 204 catch( Exception e ) 205 { 206 } 207 } 208 209 210 211 public void 213 testInteger0() 214 throws Exception 215 { 216 final ArgHelper argHelper = setupArgHelper( "i1,1", "--i1=0" ); 217 218 final Integer value = argHelper.getInteger( "i1" ); 219 assertEquals( new Integer ( 0 ), value ); 220 } 221 222 public void 224 testIntegerNegative() 225 throws Exception 226 { 227 final ArgHelper argHelper = setupArgHelper( "i1,1", "--i1=-9999" ); 228 229 final Integer value = argHelper.getInteger( "i1" ); 230 assertEquals( new Integer ( -9999 ), value ); 231 } 232 233 public void 235 testIntegerPositive() 236 throws Exception 237 { 238 final ArgHelper argHelper = setupArgHelper( "i1,1", "--i1=9999" ); 239 240 final Integer value = argHelper.getInteger( "i1" ); 241 assertEquals( new Integer ( 9999 ), value ); 242 } 243 244 public void 245 testNoOptionsNoOperands() 246 throws Exception 247 { 248 final ArgHelper argHelper = setupArgHelper( "s1,1", "--s1=" ); 249 250 final String value = argHelper.getString( "s1", null); 251 assertEquals( "", value ); 252 } 253 254 public void 255 testNoOptionsNoOperandsWithCmd() 256 throws Exception 257 { 258 final ArgHelper argHelper = setupArgHelper( 1, null, "cmd" ); 259 260 assertEquals( "expecting no options", 0, argHelper.countOptions() ); 261 assertEquals( "expecting no operands", 0, argHelper.getOperands().length ); 262 } 263 264 public void 265 testOnlyOperands() 266 throws Exception 267 { 268 final ArgHelper argHelper = setupArgHelper( "", "op1 op2" ); 269 270 assertEquals( "expecting 2 operands", 2, argHelper.getOperands().length ); 271 assertEquals( "expecting 0 options", 0, argHelper.countOptions() ); 272 } 273 274 public void 275 testNoOperands() 276 throws Exception 277 { 278 final ArgHelper argHelper = setupArgHelper( "b1 b2 s1,1", "--b1 --b2 --s1=hello" ); 279 280 assertEquals( "expecting 0 operands", 0, argHelper.getOperands().length ); 281 assertEquals( "expecting 3 options", 3, argHelper.countOptions() ); 282 283 final String value = argHelper.getString( "s1", null); 284 assertEquals( "hello", value ); 285 } 286 287 288 public void 289 testMultipleArgsWithSpaces() 290 throws Exception 291 { 292 final ArgHelper argHelper = setupArgHelper( "a1,4", "--a1 1 2 hello there op1 op2" ); 293 294 final String [] values = argHelper.getArgValues( "a1" ); 295 assertEquals( values.length, 4 ); 296 assertEquals( "expected 2 operands", 2, argHelper.getOperands().length ); 297 } 298 299 300 public void 301 testMultipleArgsWithEquals() 302 throws Exception 303 { 304 final ArgHelper argHelper = setupArgHelper( "a1,4", "--a1=1,2,hello,there op1 op2" ); 305 306 final String [] values = argHelper.getArgValues( "a1" ); 307 assertEquals( "expected 4 options", values.length, 4 ); 308 assertEquals( "expected 2 operands", 2, argHelper.getOperands().length ); 309 } 310 311 public void 312 testIllegalOptionsFailure() 313 throws Exception 314 { 315 try 316 { 317 final ArgHelper argHelper = setupArgHelper( "", "--option1=1" ); 318 } 319 catch( Exception e ) 320 { 321 } 323 } 324 325 public void 326 testSingleCharBoolean() 327 throws Exception 328 { 329 final String booleanOptions = "b"; 330 final String input = "-b"; 331 332 try 333 { 334 final ArgHelper argHelper = setupArgHelper( booleanOptions, input ); 335 336 assertEquals( "expected TRUE for: " + input, 337 Boolean.TRUE, argHelper.getBoolean( booleanOptions, null) ); 338 } 339 catch( Exception e ) 340 { 341 } 343 } 344 345 public void 346 testSingleCharBooleanWithValue() 347 throws Exception 348 { 349 final String booleanOptions = "b"; 350 final String input = "-b=false"; 351 352 try 353 { 354 final ArgHelper argHelper = setupArgHelper( booleanOptions, input ); 355 356 assertEquals( "expected FALSE for: " + input, 357 Boolean.FALSE, argHelper.getBoolean( booleanOptions, null) ); 358 } 359 catch( Exception e ) 360 { 361 } 363 } 364 365 protected void 366 setUp() 367 { 368 } 369 370 protected void 371 tearDown() 372 { 373 } 374 375 }; 376 377 378 379 | Popular Tags |