@Override @Nonnull public AdminCommand create( Path homeDir, Path configDir, OutsideWorld outsideWorld ) { return new HelpCommand( usage, outsideWorld::stdOutLine, CommandLocator.fromServiceLocator() ); } }
@Test void printsUnknownCommandWhenUnknownCommandIsProvided() { CommandLocator commandLocator = mock( CommandLocator.class ); when( commandLocator.getAllProviders() ).thenReturn( Collections.emptyList() ); when( commandLocator.findProvider( "foobar" ) ).thenThrow( new NoSuchElementException( "foobar" ) ); HelpCommand helpCommand = new HelpCommand( mock( Usage.class ), out, commandLocator ); IncorrectUsage incorrectUsage = assertThrows( IncorrectUsage.class, () -> helpCommand.execute( "foobar" ) ); assertThat( incorrectUsage.getMessage(), containsString( "Unknown command: foobar" ) ); }
@Test void printsAvailableCommandsWhenUnknownCommandIsProvided() { CommandLocator commandLocator = mock( CommandLocator.class ); List<AdminCommand.Provider> mockCommands = asList( mockCommand( "foo" ), mockCommand( "bar" ), mockCommand( "baz" ) ); when( commandLocator.getAllProviders() ).thenReturn( mockCommands ); when( commandLocator.findProvider( "foobar" ) ).thenThrow( new NoSuchElementException( "foobar" ) ); HelpCommand helpCommand = new HelpCommand( mock( Usage.class ), out, commandLocator ); IncorrectUsage incorrectUsage = assertThrows( IncorrectUsage.class, () -> helpCommand.execute( "foobar" ) ); assertThat( incorrectUsage.getMessage(), containsString( "Available commands are: foo bar baz" ) ); }
HelpCommand helpCommand = new HelpCommand( new Usage( "neo4j-admin", commandLocator ), ps::println, commandLocator ); helpCommand.execute( "foobar" );
HelpCommand helpCommand = new HelpCommand( usage, ps::println, commandLocator ); helpCommand.execute();