Skip to content

Commit c207a27

Browse files
committed
Add tests for Request/Response filters
1 parent 4cee928 commit c207a27

File tree

2 files changed

+100
-0
lines changed

2 files changed

+100
-0
lines changed

src/AndroidClient/android/src/androidTest/java/net/servicestack/android/TestServiceTestsAsync.java

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22

33
import android.app.Application;
44
import android.test.ApplicationTestCase;
5+
import android.text.TextUtils;
56

67
import net.servicestack.client.AsyncResult;
8+
import net.servicestack.client.ConnectionFilter;
79
import net.servicestack.client.ExceptionFilter;
10+
import net.servicestack.client.JsonServiceClient;
811
import net.servicestack.client.Log;
912
import net.servicestack.client.ResponseStatus;
1013
import net.servicestack.client.TimeSpan;
@@ -33,6 +36,61 @@ public TestServiceTestsAsync() {
3336

3437
AndroidServiceClient client = new AndroidServiceClient("http://test.servicestack.net");
3538

39+
public void test_does_fire_Request_and_Response_Filters_Async() throws InterruptedException {
40+
41+
AndroidServiceClient client = new AndroidServiceClient("http://test.servicestack.net");
42+
43+
final ArrayList<String> events = new ArrayList<>();
44+
45+
AndroidServiceClient.GlobalRequestFilter = new ConnectionFilter() {
46+
@Override public void exec(HttpURLConnection conn) {
47+
events.add("GlobalRequestFilter");
48+
}
49+
};
50+
AndroidServiceClient.GlobalResponseFilter = new ConnectionFilter() {
51+
@Override public void exec(HttpURLConnection conn) {
52+
events.add("GlobalResponseFilter");
53+
}
54+
};
55+
56+
client.RequestFilter = new ConnectionFilter() {
57+
@Override public void exec(HttpURLConnection conn) {
58+
events.add("RequestFilter");
59+
}
60+
};
61+
client.ResponseFilter = new ConnectionFilter() {
62+
@Override public void exec(HttpURLConnection conn) {
63+
events.add("ResponseFilter");
64+
}
65+
};
66+
67+
Hello request = new Hello()
68+
.setName("World");
69+
70+
final CountDownLatch signal = new CountDownLatch(1);
71+
72+
client.getAsync(request, new AsyncResult<HelloResponse>() {
73+
@Override public void success(HelloResponse response) {
74+
75+
assertEquals("Hello, World!", response.getResult());
76+
77+
String results = TextUtils.join(", ", events);
78+
79+
assertEquals("RequestFilter, GlobalRequestFilter, ResponseFilter, GlobalResponseFilter", results);
80+
81+
AndroidServiceClient.GlobalRequestFilter = null;
82+
AndroidServiceClient.GlobalResponseFilter = null;
83+
}
84+
85+
@Override
86+
public void complete() {
87+
signal.countDown();
88+
}
89+
});
90+
91+
assertTrue(signal.await(5, TimeUnit.SECONDS));
92+
}
93+
3694
public void test_Can_POST_Test_HelloAllTypes_async() throws InterruptedException {
3795
final HelloAllTypes request = createHelloAllTypes();
3896

src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/TestServiceTests.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
import android.app.Application;
66
import android.test.ApplicationTestCase;
7+
import android.text.TextUtils;
78

9+
import net.servicestack.client.ConnectionFilter;
810
import net.servicestack.client.ExceptionFilter;
911
import net.servicestack.client.JsonServiceClient;
1012
import net.servicestack.client.Log;
@@ -46,6 +48,46 @@ public void test_Can_GET_Hello(){
4648
assertEquals("Hello, World!", response.getResult());
4749
}
4850

51+
public void test_does_fire_Request_and_Response_Filters(){
52+
53+
JsonServiceClient client = new JsonServiceClient("http://test.servicestack.net");
54+
55+
final ArrayList<String> events = new ArrayList<>();
56+
57+
JsonServiceClient.GlobalRequestFilter = new ConnectionFilter() {
58+
@Override public void exec(HttpURLConnection conn) {
59+
events.add("GlobalRequestFilter");
60+
}
61+
};
62+
JsonServiceClient.GlobalResponseFilter = new ConnectionFilter() {
63+
@Override public void exec(HttpURLConnection conn) {
64+
events.add("GlobalResponseFilter");
65+
}
66+
};
67+
68+
client.RequestFilter = new ConnectionFilter() {
69+
@Override public void exec(HttpURLConnection conn) {
70+
events.add("RequestFilter");
71+
}
72+
};
73+
client.ResponseFilter = new ConnectionFilter() {
74+
@Override public void exec(HttpURLConnection conn) {
75+
events.add("ResponseFilter");
76+
}
77+
};
78+
79+
Hello request = new Hello()
80+
.setName("World");
81+
82+
HelloResponse response = client.get(request);
83+
84+
assertEquals("Hello, World!", response.getResult());
85+
86+
String results = TextUtils.join(", ", events);
87+
88+
assertEquals("RequestFilter, GlobalRequestFilter, ResponseFilter, GlobalResponseFilter", results);
89+
}
90+
4991
public void test_Can_GET_Hello_with_CustomPath(){
5092
HelloResponse response = client.get("/hello/World", HelloResponse.class);
5193

0 commit comments

Comments
 (0)