Fix test to no longer overwrite test configs.

This commit is contained in:
Tim Donohue
2020-01-10 11:58:48 -06:00
parent 3e4937a2ba
commit f9709c0d8e
2 changed files with 16 additions and 2 deletions

View File

@@ -146,6 +146,11 @@
<groupId>commons-beanutils</groupId> <groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId> <artifactId>commons-beanutils</artifactId>
</dependency> </dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency> <dependency>
<groupId>javax.annotation</groupId> <groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId> <artifactId>javax.annotation-api</artifactId>

View File

@@ -14,6 +14,7 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
@@ -23,6 +24,7 @@ import org.apache.commons.configuration2.PropertiesConfiguration;
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder; import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.configuration2.builder.fluent.Configurations;
import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.io.FileUtils;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -523,7 +525,7 @@ public class DSpaceConfigurationServiceTest {
* of time. * of time.
*/ */
@Test @Test
public void testAutomaticReload() throws ConfigurationException, InterruptedException { public void testAutomaticReload() throws ConfigurationException, IOException, InterruptedException {
// Initialize new config service // Initialize new config service
DSpaceConfigurationService dscs = new DSpaceConfigurationService(); DSpaceConfigurationService dscs = new DSpaceConfigurationService();
@@ -531,6 +533,10 @@ public class DSpaceConfigurationServiceTest {
assertNotNull(dscs.getProperty("prop.to.auto.reload")); assertNotNull(dscs.getProperty("prop.to.auto.reload"));
assertEquals("D-space", dscs.getProperty("prop.to.auto.reload")); assertEquals("D-space", dscs.getProperty("prop.to.auto.reload"));
// Copy our test local.properties file to a temp location (so we can restore it after tests below)
File tempPropFile = File.createTempFile("temp", "properties");
FileUtils.copyFile(new File(propertyFilePath), tempPropFile);
// Now, change the value of that Property in the file itself (using a separate builder instance) // Now, change the value of that Property in the file itself (using a separate builder instance)
FileBasedConfigurationBuilder<PropertiesConfiguration> builder = new Configurations() FileBasedConfigurationBuilder<PropertiesConfiguration> builder = new Configurations()
.propertiesBuilder(propertyFilePath); .propertiesBuilder(propertyFilePath);
@@ -538,7 +544,7 @@ public class DSpaceConfigurationServiceTest {
// Clear out current value. Add in a new value // Clear out current value. Add in a new value
config.clearProperty("prop.to.auto.reload"); config.clearProperty("prop.to.auto.reload");
config.addProperty("prop.to.auto.reload", "DSpace"); config.addProperty("prop.to.auto.reload", "DSpace");
// Save updates to file // Save updates to file (this changes our test local.properties)
builder.save(); builder.save();
// Check immediately. Property should be unchanged // Check immediately. Property should be unchanged
@@ -551,6 +557,9 @@ public class DSpaceConfigurationServiceTest {
// Check again. Property should have reloaded // Check again. Property should have reloaded
// NOTE: reload time is set in config-definition.xml to reload every 2 seconds // NOTE: reload time is set in config-definition.xml to reload every 2 seconds
assertEquals("DSpace", dscs.getProperty("prop.to.auto.reload")); assertEquals("DSpace", dscs.getProperty("prop.to.auto.reload"));
// Restore our test local.properties file to original content
FileUtils.copyFile(tempPropFile, new File(propertyFilePath));
} }
/** /**