forked from javaee-samples/javaee7-samples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FilterServletSpecification.groovy
53 lines (41 loc) · 1.62 KB
/
FilterServletSpecification.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package org.javaee7.servlet.filters
import org.jboss.arquillian.container.test.api.Deployment
import org.jboss.arquillian.spock.ArquillianSputnik
import org.jboss.arquillian.test.api.ArquillianResource
import org.jboss.shrinkwrap.api.ShrinkWrap
import org.jboss.shrinkwrap.api.spec.WebArchive
import org.junit.runner.RunWith
import spock.lang.Specification
import javax.ws.rs.client.Client
import javax.ws.rs.client.ClientBuilder
import javax.ws.rs.client.WebTarget
import javax.ws.rs.core.Response
@RunWith(ArquillianSputnik)
class FilterServletSpecification extends Specification{
@Deployment(testable = false)
def static WebArchive "create deployment"() {
return ShrinkWrap.create(WebArchive.class)
.addClass(CharResponseWrapper.class)
.addClasses(TestServlet.class, FooBarFilter.class);
}
@ArquillianResource
private URL base;
def "standard servlet should return a simple text"() {
given:
Client client = ClientBuilder.newClient();
WebTarget target = client.target(URI.create(new URL(base, "TestServlet").toExternalForm()));
when:
Response response = target.request().get();
then:
response.readEntity(String.class) == "bar"
}
def "filtered servlet should return a enhanced foobar text"() {
given:
Client client = ClientBuilder.newClient();
WebTarget target = client.target(URI.create(new URL(base, "filtered/TestServlet").toExternalForm()));
when:
Response response = target.request().get();
then:
response.readEntity(String.class) == "foo--bar--bar"
}
}