package com.googlecode.mycontainer.commons.servlet;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import org.junit.Test;
import com.googlecode.mycontainer.commons.httpclient.RequestMethod;
import com.googlecode.mycontainer.commons.httpclient.WebClient;
import com.googlecode.mycontainer.commons.httpclient.WebRequest;
import com.googlecode.mycontainer.commons.httpclient.WebResponse;
public class EchoServletTest extends AbstractTestCase {
@Test
public void testEchoGet() {
WebClient client = createClient();
WebRequest request = client.createRequest(RequestMethod.GET);
request.setUri("echo/test.txt");
request.addParameter("m", "my message");
WebResponse response = request.invoke();
try {
assertEquals(200, response.getCode());
assertEquals("my message", response.getContentAsString());
} finally {
response.close();
}
}
@Test
public void testEchoPost() {
WebClient client = createClient();
WebRequest request = client.createRequest(RequestMethod.POST);
request.setUri("echo/test.txt");
request.addParameter("m", "my message");
WebResponse response = request.invoke();
try {
assertEquals(200, response.getCode());
assertEquals("my message", response.getContentAsString());
} finally {
response.close();
}
}
// @Test
public void testEchoAsync() {
WebClient client = createClient();
WebRequest request = client.createRequest(RequestMethod.GET);
request.setUri("echo/test.txt");
request.addParameter("m", "my message");
Future<WebResponse> f1 = request.invokeAsync();
Future<WebResponse> f2 = request.invokeAsync();
try {
assertFalse(f1.isDone());
assertFalse(f1.isCancelled());
assertFalse(f2.isDone());
assertFalse(f2.isCancelled());
assertEquals(200, f1.get().getCode());
assertEquals("my message", f1.get().getContentAsString());
assertEquals(200, f2.get().getCode());
assertEquals("my message", f2.get().getContentAsString());
assertTrue(f1.isDone());
assertFalse(f1.isCancelled());
assertTrue(f2.isDone());
assertFalse(f2.isCancelled());
} catch (InterruptedException e) {
throw new RuntimeException(e);
} catch (ExecutionException e) {
throw new RuntimeException(e);
} finally {
f1.cancel(true);
f2.cancel(true);
}
}
}