Package org.openstreetmap.osmosis.extract.apidb.v0_6

Source Code of org.openstreetmap.osmosis.extract.apidb.v0_6.DatabaseUtilities

// This software is released into the Public Domain.  See copying.txt for details.
package org.openstreetmap.osmosis.extract.apidb.v0_6;

import java.io.File;

import org.openstreetmap.osmosis.apidb.common.DatabaseContext;
import org.openstreetmap.osmosis.core.Osmosis;
import org.openstreetmap.osmosis.core.database.AuthenticationPropertiesLoader;
import org.openstreetmap.osmosis.core.database.DatabaseConstants;
import org.openstreetmap.osmosis.core.database.DatabaseLoginCredentials;
import org.openstreetmap.osmosis.testutil.TestDataUtilities;


/**
* Contains re-usable functionality for manipulating the database during tests.
*
* @author Brett Henderson
*/
public class DatabaseUtilities {
  private static final String AUTHFILE = "v0_6/apidb-authfile.txt";
  private static final String AUTHFILE_PROPERTY = "db.apidb.authfile";
 
  private TestDataUtilities dataUtils;
 
 
  /**
   * Creates a new instance.
   *
   * @param dataUtils
   *            The test data manager.
   */
  public DatabaseUtilities(TestDataUtilities dataUtils) {
    this.dataUtils = dataUtils;
  }
 

  /**
   * Creates a new database context pointing at the test database.
   *
   * @return A fully configured database context.
   */
    public DatabaseContext createDatabaseContext() {
        AuthenticationPropertiesLoader credentialsLoader;
        DatabaseLoginCredentials credentials;

        credentials = new DatabaseLoginCredentials(DatabaseConstants.TASK_DEFAULT_HOST,
                DatabaseConstants.TASK_DEFAULT_DATABASE, DatabaseConstants.TASK_DEFAULT_USER,
                DatabaseConstants.TASK_DEFAULT_PASSWORD, DatabaseConstants.TASK_DEFAULT_FORCE_UTF8,
                DatabaseConstants.TASK_DEFAULT_PROFILE_SQL, DatabaseConstants.TASK_DEFAULT_DB_TYPE);
        credentialsLoader = new AuthenticationPropertiesLoader(getAuthorizationFile());
        credentialsLoader.updateLoginCredentials(credentials);
        return new DatabaseContext(credentials);
    }
   
    /**
     * Removes all data from the database.
     */
    public void truncateDatabase() {
      // Remove all existing data from the database.
        Osmosis.run(new String[] {
            "-q",
            "--truncate-apidb-0.6",
            "authFile=" + getAuthorizationFile().getPath(),
            "allowIncorrectSchemaVersion=true"
            });
    }
   
   
    /**
   * Returns the location of the database authorization file.
   *
   * @return The authorization file.
   */
    public File getAuthorizationFile() {
      return dataUtils.createDataFile(AUTHFILE_PROPERTY, AUTHFILE);
    }
}
TOP

Related Classes of org.openstreetmap.osmosis.extract.apidb.v0_6.DatabaseUtilities

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.