package test.nvarghese.beowulf.common.http.txn; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; import junit.framework.Assert; import org.apache.http.NameValuePair; import org.apache.http.client.CookieStore; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.impl.cookie.BasicClientCookie; import org.apache.http.message.BasicNameValuePair; import org.testng.annotations.Test; import com.nvarghese.beowulf.common.http.txn.AbstractHttpTransaction; import com.nvarghese.beowulf.common.http.txn.HttpMethodType; import com.nvarghese.beowulf.common.http.txn.HttpTransactionFactory; import com.nvarghese.beowulf.common.http.txn.TransactionSource; public class HttpPostTransactionTest { @Test(groups = "BW_http_post_txn_test") public void testSimplePostRequest() throws URISyntaxException, UnsupportedEncodingException { URI uri = new URI("http://localhost:9888/index.html"); AbstractHttpTransaction transaction = HttpTransactionFactory.createTransaction(HttpMethodType.POST, uri, getUrlEncodedFormEntity(), null, TransactionSource.NONE); transaction.execute(); String responseString = transaction.getResponseBodyAsString(); Assert.assertNotNull(responseString); Assert.assertEquals(transaction.getResponse().getStatusLine().getStatusCode(), 200); } @Test(groups = "BW_http_post_txn_test") public void testSimplePostCookieRequest() throws URISyntaxException, UnsupportedEncodingException { URI uri = new URI("http://localhost:9888/cookie_test.html"); AbstractHttpTransaction transaction = HttpTransactionFactory.createTransaction(HttpMethodType.POST, uri, getUrlEncodedFormEntity(), null, TransactionSource.NONE); transaction.execute(); String responseString = transaction.getResponseBodyAsString(); CookieStore cookieStore = transaction.getCookieStore(); System.out.println("-------------------------------------------------------"); System.out.println(transaction.requestToString()); System.out.println(transaction.responseToString()); System.out.println("-------------------------------------------------------"); Assert.assertNotNull(responseString); Assert.assertEquals(transaction.getResponse().getStatusLine().getStatusCode(), 200); Assert.assertNotSame(cookieStore.getCookies().size(), 0); } @Test(groups = "BW_http_post_txn_test") public void testPostAddCookieInRequest() throws URISyntaxException, UnsupportedEncodingException { URI uri = new URI("http://localhost:9888/cookie_added.html"); AbstractHttpTransaction transaction = HttpTransactionFactory.createTransaction(HttpMethodType.POST, uri, getUrlEncodedFormEntity(), null, TransactionSource.NONE); BasicClientCookie cookie = new BasicClientCookie("c", "value"); cookie.setDomain("localhost"); cookie.setPath("/"); cookie.setVersion(0); transaction.getCookieStore().addCookie(cookie); transaction.execute(); int statusCode = transaction.getResponseStatusCode(); String responseString = transaction.getResponseBodyAsString(); Assert.assertNotNull(responseString); Assert.assertEquals(statusCode, 200); } private UrlEncodedFormEntity getUrlEncodedFormEntity() throws UnsupportedEncodingException { List<NameValuePair> formparams = new ArrayList<NameValuePair>(); formparams.add(new BasicNameValuePair("param1", "value1")); formparams.add(new BasicNameValuePair("param2", "value2")); UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams); return entity; } }