### Question:
RepositoryConnectController implements IConnectedRepositoryInstance { @SuppressWarnings( "unchecked" ) public String getDatabases() { RepositoriesMeta repositoriesMeta = getRepositoriesMeta(); JSONArray list = new JSONArray(); for ( int i = 0; i < repositoriesMeta.nrDatabases(); i++ ) { JSONObject databaseJSON = new JSONObject(); databaseJSON.put( "name", repositoriesMeta.getDatabase( i ).getName() ); list.add( databaseJSON ); } return list.toString(); } RepositoryConnectController( PluginRegistry pluginRegistry, Supplier<Spoon> spoonSupplier );  RepositoryConnectController(); boolean help(); String createConnection(); String editDatabaseConnection( String database ); boolean deleteDatabaseConnection( String database ); String browse(); @SuppressWarnings( "unchecked" ) String getPlugins(); boolean updateRepository( String id, Map<String, Object> items ); RepositoryMeta createRepository( String id, Map<String, Object> items ); @SuppressWarnings( "unchecked" ) String getRepositories(); String getRepository( String name ); DatabaseMeta getDatabase( String name ); void removeDatabase( String name ); @SuppressWarnings( "unchecked" ) String getDatabases(); void connectToRepository(); void connectToRepository( RepositoryMeta repositoryMeta ); void connectToRepository( String repositoryName, String username, String password ); void connectToRepository( RepositoryMeta repositoryMeta, String username, String password ); void reconnectToRepository( String repositoryName, String username, String password ); void reconnectToRepository( String username, String password ); boolean deleteRepository( String name ); void addDatabase( DatabaseMeta databaseMeta ); boolean setDefaultRepository( String name ); boolean clearDefaultRepository(); String getCurrentUser(); void setCurrentRepository( RepositoryMeta repositoryMeta ); RepositoryMeta getCurrentRepository(); RepositoryMeta getConnectedRepository(); void setConnectedRepository( RepositoryMeta connectedRepository ); RepositoryMeta getDefaultRepositoryMeta(); RepositoryMeta getRepositoryMetaByName( String name ); boolean isConnected( String name ); boolean isConnected(); Repository getConnectedRepositoryInstance(); void save(); boolean checkDuplicate( String name ); PropsUI getPropsUI(); void addListener( RepositoryContollerListener listener ); void removeListener( RepositoryContollerListener listener ); void fireListeners(); boolean isRelogin(); void setRelogin( boolean relogin ); Map<String, Object> modelToMap( RepositoryModel model ); boolean isDatabaseWithNameExist( DatabaseMeta databaseMeta, boolean isNew ); static final String DISPLAY_NAME; static final String DESCRIPTION; static final String IS_DEFAULT; static final String URL; static final String DATABASE_CONNECTION; static final String SHOW_HIDDEN_FOLDERS; static final String LOCATION; static final String DO_NOT_MODIFY; static final String ORIGINAL_NAME; static final String DEFAULT_URL; static final String MESSAGE; static final String SUCCESS; static final String ERROR_401; static final String HELP_URL; }### Answer:
@Test public void testGetDatabases() throws Exception { when( repositoriesMeta.nrDatabases() ).thenReturn( 1 ); when( repositoriesMeta.getDatabase( 0 ) ).thenReturn( databaseMeta ); when( databaseMeta.getName() ).thenReturn( DATABASE_NAME ); String databases = controller.getDatabases(); assertEquals( "[{\"name\":\"DATABASE NAME\"}]", databases ); }