Add script after setting scripts in RsrcDbPopultr
Prior to this commit it was impossible to add additional scripts to a ResourceDatabasePopulator after setScripts() had been invoked. This commit fixes this by ensuring that the internal scripts list continues to be modifiable when setScripts() is invoked. Issue: SPR-11691
This commit is contained in:
parent
84f678a06b
commit
b4995f7e4f
|
|
@ -133,7 +133,8 @@ public class ResourceDatabasePopulator implements DatabasePopulator {
|
|||
*/
|
||||
public void setScripts(Resource... scripts) {
|
||||
assertContentsOfScriptArray(scripts);
|
||||
this.scripts = Arrays.asList(scripts);
|
||||
// Ensure that the list is modifiable
|
||||
this.scripts = new ArrayList<Resource>(Arrays.asList(scripts));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ public class ResourceDatabasePopulatorTests {
|
|||
|
||||
private static final Resource script1 = resource("script1");
|
||||
private static final Resource script2 = resource("script2");
|
||||
private static final Resource script3 = resource("script3");
|
||||
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
|
|
@ -57,6 +58,15 @@ public class ResourceDatabasePopulatorTests {
|
|||
assertEquals(2, databasePopulator.getScripts().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void constructWithMulipleResourcesAndThenAddScript() {
|
||||
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(script1, script2);
|
||||
assertEquals(2, databasePopulator.getScripts().size());
|
||||
|
||||
databasePopulator.addScript(script3);
|
||||
assertEquals(3, databasePopulator.getScripts().size());
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void addScriptsWithNullResource() {
|
||||
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator();
|
||||
|
|
@ -81,6 +91,18 @@ public class ResourceDatabasePopulatorTests {
|
|||
databasePopulator.setScripts((Resource[]) null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setScriptsAndThenAddScript() {
|
||||
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator();
|
||||
assertEquals(0, databasePopulator.getScripts().size());
|
||||
|
||||
databasePopulator.setScripts(script1, script2);
|
||||
assertEquals(2, databasePopulator.getScripts().size());
|
||||
|
||||
databasePopulator.addScript(script3);
|
||||
assertEquals(3, databasePopulator.getScripts().size());
|
||||
}
|
||||
|
||||
private static Resource resource(String path) {
|
||||
return new ClassPathResource(path);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue