Skip to content

Commit

Permalink
Update boolean flag usage string
Browse files Browse the repository at this point in the history
  • Loading branch information
spacecowboy committed Nov 1, 2016
1 parent b1be237 commit 0824e53
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,9 @@
*/
package org.neo4j.commandline.arguments;

import org.neo4j.helpers.Args;
import org.apache.commons.lang3.text.WordUtils;

import static org.neo4j.kernel.impl.util.Converters.identity;
import static org.neo4j.kernel.impl.util.Converters.withDefault;
import org.neo4j.helpers.Args;

public class OptionalBooleanArg extends OptionalNamedArg
{
Expand All @@ -33,27 +32,16 @@ public OptionalBooleanArg( String name, boolean defaultValue, String description
}

@Override
public String parse( String... args )
public String usage()
{
String value = Args.parse( args ).interpretOption( name, withDefault( defaultValue ), identity() );

if ( value == null || value.isEmpty() )
{
return Boolean.toString( true );
}
return WordUtils.wrap( String.format( "[--%s[=<%s>]]", name, exampleValue ), 60 );
}

if ( allowedValues.length > 0 )
{
for ( String allowedValue : allowedValues )
{
if ( allowedValue.equalsIgnoreCase( value ) )
{
return value;
}
}
throw new IllegalArgumentException( String.format( "'%s' must be one of [%s], not: %s", name,
String.join( ",", allowedValues ), value ) );
}
return value;
@Override
public String parse( String... args )
{
return Boolean.toString( Args.withFlags( name() )
.parse( args )
.getBoolean( name, Boolean.parseBoolean( defaultValue ) ) );
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import org.mockito.MockitoAnnotations;

import java.nio.file.Path;
import java.util.Optional;
import java.util.function.Consumer;

import org.neo4j.commandline.arguments.Arguments;
Expand All @@ -49,9 +48,8 @@ public void shouldPrintUsageForAllCommands()
AdminCommand.Provider[] commands = new AdminCommand.Provider[]
{
new StubProvider( "restore",
Optional.of( "---from <backup-directory> --database=<database-name> [--force]" ),
"Restores a database backed up using the neo4j-backup tool." ),
new StubProvider( "bam", Optional.empty(), "A summary" )
new StubProvider( "bam", "A summary" )
};
final Usage usage = new Usage( "neo4j-admin", new CannedLocator( commands ) );
usage.print( out );
Expand All @@ -72,13 +70,11 @@ public void shouldPrintUsageForAllCommands()

private static class StubProvider extends AdminCommand.Provider
{
private final Optional<String> arguments;
private final String summary;

public StubProvider( String name, Optional<String> arguments, String summary )
public StubProvider( String name, String summary )
{
super( name );
this.arguments = arguments;
this.summary = summary;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package org.neo4j.commandline.arguments;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class OptionalBooleanArgTest
{

@Test
public void parsesValues1() throws Exception
{
OptionalBooleanArg arg = new OptionalBooleanArg( "foo", false, "" );

assertEquals( "false", arg.parse() );
assertEquals( "false", arg.parse("--foo=false") );
assertEquals( "true", arg.parse("--foo=true") );
assertEquals( "true", arg.parse("--foo") );
}

@Test
public void parsesValues2() throws Exception
{
OptionalBooleanArg arg = new OptionalBooleanArg( "foo", true, "" );

assertEquals( "true", arg.parse() );
assertEquals( "false", arg.parse("--foo=false") );
assertEquals( "true", arg.parse("--foo=true") );
assertEquals( "true", arg.parse("--foo") );
}

@Test
public void usageTest() throws Exception
{
OptionalBooleanArg arg = new OptionalBooleanArg( "foo", true, "" );

assertEquals( "[--foo[=<true|false>]]", arg.usage() );
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ public void shouldPrintNiceHelp() throws Throwable
verify( out ).accept(
"usage: neo4j-admin check-consistency [--database=<name>]\n" +
" [--additional-config=<config-file-path>]\n" +
" [--verbose=<true|false>]\n" +
" [--verbose[=<true|false>]]\n" +
" [--report-dir=<directory>]" );
verify( out ).accept( "" );
verify( out ).accept( "Check the consistency of a database.\n" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ public void shouldPrintNiceHelp() throws Throwable
usage.printUsageForCommand( new RestoreDatabaseCli.Provider(), out );

verify( out ).accept( "usage: neo4j-admin restore --from=<backup-directory> [--database=<name>]\n" +
" [--force=<true|false>]" );
" [--force[=<true|false>]]" );
verify( out ).accept( "" );
verify( out ).accept( "Restore a backed up database.\n" +
"\n" +
Expand Down

0 comments on commit 0824e53

Please sign in to comment.