// Version: $Id: $ // Copyright: Copyright(c) 2008 Trace Financial Limited package org.liquibase.maven.plugins; import java.util.*; import org.codehaus.plexus.configuration.PlexusConfiguration; /** * Basic tests verifying the configuration of the {@link LiquibaseRollback} plugin. * @author Peter Murray */ public class LiquibaseRollbackMojoTest extends AbstractLiquibaseMojoTest { private static final String COUNT_CONFIG_FILE = "rollback/plugin_config_count.xml"; private static final String TAG_CONFIG_FILE = "rollback/plugin_config_tag.xml"; private static final String DATE_CONFIG_FILE = "rollback/plugin_config_date.xml"; private static final Map<String, Object> DEFAULT_PROPERTIES; private static final Map<String, Object> COUNT_DEFAULT_PROPERTIES; private static final Map<String, Object> TAG_DEFAULT_PROPERTIES; private static final Map<String, Object> DATE_DEFAULT_PROPERTIES; static { DEFAULT_PROPERTIES = new HashMap<String, Object>(); DEFAULT_PROPERTIES.put("changeLogFile", "org/liquibase/changelog.xml"); DEFAULT_PROPERTIES.put("driver", "com.mysql.jdbc.Driver"); DEFAULT_PROPERTIES.put("url", "jdbc:mysql://localhost/eformat"); DEFAULT_PROPERTIES.put("username", "root"); DEFAULT_PROPERTIES.put("password", null); DEFAULT_PROPERTIES.put("verbose", true); COUNT_DEFAULT_PROPERTIES = new HashMap<String, Object>(); COUNT_DEFAULT_PROPERTIES.putAll(DEFAULT_PROPERTIES); COUNT_DEFAULT_PROPERTIES.put("rollbackCount", 5); TAG_DEFAULT_PROPERTIES = new HashMap<String, Object>(); TAG_DEFAULT_PROPERTIES.putAll(DEFAULT_PROPERTIES); TAG_DEFAULT_PROPERTIES.put("rollbackTag", "tag_to_roll back to"); DATE_DEFAULT_PROPERTIES = new HashMap<String, Object>(); DATE_DEFAULT_PROPERTIES.putAll(DEFAULT_PROPERTIES); DATE_DEFAULT_PROPERTIES.put("rollbackDate", "12-08-1977"); } public void testRollbackCountNoPropertiesFile() throws Exception { LiquibaseRollback mojo = createUpdateMojo(COUNT_CONFIG_FILE); // Clear out any settings for the property file that may be set setVariableValueToObject(mojo, "propertyFile", null); setVariableValueToObject(mojo, "propertyFileWillOverride", false); Map values = getVariablesAndValuesFromObject(mojo); checkValues(COUNT_DEFAULT_PROPERTIES, values); } public void testRollbackTagNoPropertiesFile() throws Exception { LiquibaseRollback mojo = createUpdateMojo(TAG_CONFIG_FILE); // Clear out any settings for the property file that may be set setVariableValueToObject(mojo, "propertyFile", null); setVariableValueToObject(mojo, "propertyFileWillOverride", false); Map values = getVariablesAndValuesFromObject(mojo); checkValues(TAG_DEFAULT_PROPERTIES, values); } public void testRollbackDateNoPropertiesFile() throws Exception { LiquibaseRollback mojo = createUpdateMojo(DATE_CONFIG_FILE); // Clear out any settings for the property file that may be set setVariableValueToObject(mojo, "propertyFile", null); setVariableValueToObject(mojo, "propertyFileWillOverride", false); Map values = getVariablesAndValuesFromObject(mojo); checkValues(DATE_DEFAULT_PROPERTIES, values); } /*-------------------------------------------------------------------------*\ * PRIVATE METHODS \*-------------------------------------------------------------------------*/ private LiquibaseRollback createUpdateMojo(String configFileName) throws Exception { LiquibaseRollback mojo = new LiquibaseRollback(); PlexusConfiguration config = loadConfiguration(configFileName); configureMojo(mojo, config); return mojo; } }