Skip to content

Commit 11f1a98

Browse files
committed
2 parents b33529a + 3d2c2bc commit 11f1a98

File tree

6 files changed

+83
-1
lines changed

6 files changed

+83
-1
lines changed

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,26 @@ public void success() {
255255
});
256256
}
257257

258+
public void test_Can_delete_ReturnVoid_Async(){
259+
final CountDownLatch signal = new CountDownLatch(1);
260+
261+
final List<String> sentMethods = new ArrayList<>();
262+
client.RequestFilter = new ConnectionFilter() {
263+
@Override
264+
public void exec(HttpURLConnection conn) {
265+
sentMethods.add(conn.getRequestMethod());
266+
}
267+
};
268+
269+
client.deleteAsync(new HelloReturnVoid().setId(1), new AsyncResultVoid() {
270+
@Override
271+
public void success() {
272+
assertEquals(HttpMethods.Delete, sentMethods.get(sentMethods.size() - 1));
273+
signal.countDown();
274+
}
275+
});
276+
}
277+
258278

259279
/* TEST HELPERS */
260280
public static HelloAllTypes createHelloAllTypes(){

src/AndroidClient/android/src/main/java/net/servicestack/android/AndroidServiceClient.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,28 @@ protected void onPostExecute(T response) {
9696
}, request);
9797
}
9898

99+
@Override
100+
public void getAsync(IReturnVoid request, final AsyncResultVoid asyncResult) {
101+
final AndroidServiceClient client = this;
102+
execTask(new AsyncTask<IReturnVoid, Void, Void>() {
103+
@Override
104+
protected Void doInBackground(IReturnVoid... params) {
105+
try {
106+
client.get(params[0]);
107+
} catch (Exception e) {
108+
asyncResult.setError(e);
109+
}
110+
return null;
111+
}
112+
113+
@Override
114+
protected void onPostExecute(Void noResponse) {
115+
asyncResult.completeResult();
116+
}
117+
118+
}, request);
119+
}
120+
99121
public <T> void getAsync(IReturn<T> request, final Map<String, String> queryParams, final AsyncResult<T> asyncResult){
100122
final AndroidServiceClient client = this;
101123
execTask(new AsyncTask<IReturn<T>, Void, T>() {
@@ -518,6 +540,28 @@ protected void onPostExecute(T response) {
518540
}, request);
519541
}
520542

543+
@Override
544+
public void deleteAsync(IReturnVoid request, final AsyncResultVoid asyncResult) {
545+
final AndroidServiceClient client = this;
546+
execTask(new AsyncTask<IReturnVoid, Void, Void>() {
547+
@Override
548+
protected Void doInBackground(IReturnVoid... params) {
549+
try {
550+
client.delete(params[0]);
551+
} catch (Exception e) {
552+
asyncResult.setError(e);
553+
}
554+
return null;
555+
}
556+
557+
@Override
558+
protected void onPostExecute(Void noResponse) {
559+
asyncResult.completeResult();
560+
}
561+
562+
}, request);
563+
}
564+
521565
public <T> void deleteAsync(IReturn<T> request, final Map<String, String> queryParams, final AsyncResult<T> asyncResult){
522566
final AndroidServiceClient client = this;
523567
execTask(new AsyncTask<IReturn<T>, Void, T>() {

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,14 @@ public void exec(HttpURLConnection conn) {
247247

248248
client.send(new HelloReturnVoid().setId(1));
249249
assertEquals(HttpMethods.Post, sentMethods.get(sentMethods.size() - 1));
250+
client.get(new HelloReturnVoid().setId(2));
251+
assertEquals(HttpMethods.Get, sentMethods.get(sentMethods.size() - 1));
250252
client.post(new HelloReturnVoid().setId(3));
251253
assertEquals(HttpMethods.Post, sentMethods.get(sentMethods.size() - 1));
252-
client.put(new HelloReturnVoid().setId(2));
254+
client.put(new HelloReturnVoid().setId(4));
253255
assertEquals(HttpMethods.Put, sentMethods.get(sentMethods.size() - 1));
256+
client.delete(new HelloReturnVoid().setId(5));
257+
assertEquals(HttpMethods.Delete, sentMethods.get(sentMethods.size() - 1));
254258
}
255259

256260
public void test_Can_get_response_as_Raw_String(){

src/AndroidClient/client/src/main/java/net/servicestack/client/AsyncServiceClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public interface AsyncServiceClient {
1212
void sendAsync(IReturnVoid request, final AsyncResultVoid asyncResult);
1313

1414
<T> void getAsync(IReturn<T> request, final AsyncResult<T> asyncResult);
15+
void getAsync(IReturnVoid request, final AsyncResultVoid asyncResult);
1516
<T> void getAsync(IReturn<T> request, final Map<String, String> queryParams, final AsyncResult<T> asyncResult);
1617
<T> void getAsync(String path, final Class responseType, final AsyncResult<T> asyncResult);
1718
<T> void getAsync(String path, final Type responseType, final AsyncResult<T> asyncResult);
@@ -34,6 +35,7 @@ public interface AsyncServiceClient {
3435
void putAsync(String path, final byte[] requestBody, final String contentType, final AsyncResult<byte[]> asyncResult);
3536

3637
<T> void deleteAsync(IReturn<T> request, final AsyncResult<T> asyncResult);
38+
void deleteAsync(IReturnVoid request, final AsyncResultVoid asyncResult);
3739
<T> void deleteAsync(IReturn<T> request, final Map<String, String> queryParams, final AsyncResult<T> asyncResult);
3840
<T> void deleteAsync(String path, final Class responseType, final AsyncResult<T> asyncResult);
3941
<T> void deleteAsync(String path, final Type responseType, final AsyncResult<T> asyncResult);

src/AndroidClient/client/src/main/java/net/servicestack/client/JsonServiceClient.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,11 @@ public <TResponse> TResponse get(IReturn<TResponse> request) {
353353
request.getResponseType());
354354
}
355355

356+
@Override
357+
public void get(IReturnVoid request) {
358+
send(createRequest(createUrl(request), HttpMethods.Get), IReturnVoid.class);
359+
}
360+
356361
@Override
357362
public <TResponse> TResponse get(IReturn<TResponse> request, Map<String, String> queryParams) {
358363
return send(
@@ -478,6 +483,11 @@ public <TResponse> TResponse delete(IReturn<TResponse> request) {
478483
request.getResponseType());
479484
}
480485

486+
@Override
487+
public void delete(IReturnVoid request) {
488+
send(createRequest(createUrl(request), HttpMethods.Delete), IReturnVoid.class);
489+
}
490+
481491
@Override
482492
public <TResponse> TResponse delete(IReturn<TResponse> request, Map<String, String> queryParams) {
483493
return send(

src/AndroidClient/client/src/main/java/net/servicestack/client/ServiceClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public interface ServiceClient {
1212
void send(IReturnVoid request);
1313

1414
<TResponse> TResponse get(IReturn<TResponse> request);
15+
void get(IReturnVoid request);
1516
<TResponse> TResponse get(IReturn<TResponse> request, Map<String,String> queryParams);
1617
<TResponse> TResponse get(String path, Class responseType);
1718
<TResponse> TResponse get(String path, Type responseType);
@@ -34,6 +35,7 @@ public interface ServiceClient {
3435
HttpURLConnection put(String path, byte[] requestBody, String contentType);
3536

3637
<TResponse> TResponse delete(IReturn<TResponse> request);
38+
void delete(IReturnVoid request);
3739
<TResponse> TResponse delete(IReturn<TResponse> request, Map<String,String> queryParams);
3840
<TResponse> TResponse delete(String path, Class responseType);
3941
<TResponse> TResponse delete(String path, Type responseType);

0 commit comments

Comments
 (0)