package liquibase.changelog;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import liquibase.database.core.H2Database;
import java.util.Arrays;
public class ChangeLogParametersTest {
@Test
public void setParameterValue_doubleSet() {
ChangeLogParameters changeLogParameters = new ChangeLogParameters();
changeLogParameters.set("doubleSet", "originalValue");
changeLogParameters.set("doubleSet", "newValue");
assertEquals("re-setting a param should not overwrite the value (like how ant works)", "originalValue", changeLogParameters.getValue("doubleSet"));
}
@Test
public void getParameterValue_systemProperty() {
ChangeLogParameters changeLogParameters = new ChangeLogParameters();
assertEquals(System.getProperty("user.name"), changeLogParameters.getValue("user.name"));
}
@Test
public void setParameterValue_doubleSetButSecondWrongDatabase() {
ChangeLogParameters changeLogParameters = new ChangeLogParameters(new H2Database());
changeLogParameters.set("doubleSet", "originalValue", null, "baddb");
changeLogParameters.set("doubleSet", "newValue");
assertEquals("newValue", changeLogParameters.getValue("doubleSet"));
}
@Test
public void setParameterValue_multiDatabase() {
ChangeLogParameters changeLogParameters = new ChangeLogParameters(new H2Database());
changeLogParameters.set("doubleSet", "originalValue", null, "baddb, h2");
assertEquals("originalValue", changeLogParameters.getValue("doubleSet"));
}
@Test
public void setParameterValue_rightDBWrongContext() {
ChangeLogParameters changeLogParameters = new ChangeLogParameters(new H2Database());
changeLogParameters.setContexts(Arrays.asList("junit"));
changeLogParameters.set("doubleSet", "originalValue", "anotherContext", "baddb, h2");
assertNull(changeLogParameters.getValue("doubleSet"));
}
@Test
public void setParameterValue_rightDBRightContext() {
ChangeLogParameters changeLogParameters = new ChangeLogParameters(new H2Database());
changeLogParameters.setContexts(Arrays.asList("junit"));
changeLogParameters.set("doubleSet", "originalValue", "junit", "baddb, h2");
assertEquals("originalValue", changeLogParameters.getValue("doubleSet"));
}
}