"spring war" should copy resources to WEB-INF/classes

Closes gh-6351
This commit is contained in:
Henri Kerola
2016-07-10 11:17:13 -07:00
committed by Stephane Nicoll
parent 07690bab25
commit d07f689446
5 changed files with 56 additions and 17 deletions

View File

@@ -16,24 +16,23 @@
package org.springframework.boot.cli;
import java.io.File;
import org.junit.Test;
import org.springframework.boot.cli.command.archive.WarCommand;
import org.springframework.boot.cli.infrastructure.CommandLineInvoker;
import org.springframework.boot.cli.infrastructure.CommandLineInvoker.Invocation;
import org.springframework.boot.loader.tools.JavaExecutable;
import org.springframework.util.SocketUtils;
import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.util.zip.ZipFile;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Integration test for {@link WarCommand}.
*
* @author Andrey Stolyarov
* @author Henri Kerola
*/
public class WarCommandIT {
@@ -47,19 +46,38 @@ public class WarCommandIT {
Invocation invocation = this.cli.invoke("war", war.getAbsolutePath(),
"war.groovy");
invocation.await();
assertTrue(war.exists());
assertThat(war.exists()).isTrue();
Process process = new JavaExecutable()
.processBuilder("-jar", war.getAbsolutePath(), "--server.port=" + port)
.start();
invocation = new Invocation(process);
invocation.await();
assertThat(invocation.getOutput(), containsString("onStart error"));
assertThat(invocation.getOutput(), containsString("Tomcat started"));
assertThat(invocation.getOutput(),
containsString("/WEB-INF/lib-provided/tomcat-embed-core"));
assertThat(invocation.getOutput(),
containsString("/WEB-INF/lib-provided/tomcat-embed-core"));
assertThat(invocation.getOutput()).contains("onStart error");
assertThat(invocation.getOutput()).contains("Tomcat started");
assertThat(invocation.getOutput())
.contains("/WEB-INF/lib-provided/tomcat-embed-core");
assertThat(invocation.getOutput())
.contains("/WEB-INF/lib-provided/tomcat-embed-core");
process.destroy();
}
@Test
public void resourcesAreCopiedToWebInfClasses() throws Exception {
File war = new File("target/test-app.war");
Invocation invocation = this.cli.invoke("war", war.getAbsolutePath(),
"war.groovy");
invocation.await();
assertThat(war.exists()).isTrue();
ZipFile warFile = new ZipFile(war.getAbsolutePath());
try {
assertThat(warFile.getEntry("application.properties")).isNull();
assertThat(warFile.getEntry("WEB-INF/classes/application.properties")).isNotNull();
}
finally {
warFile.close();
}
}
}