001package edu.pdx.cs.joy.web; 002 003import org.junit.jupiter.api.Test; 004 005import java.io.IOException; 006import java.io.PrintWriter; 007import java.io.StringWriter; 008import java.net.HttpURLConnection; 009import java.util.Map; 010 011import static org.hamcrest.MatcherAssert.assertThat; 012import static org.hamcrest.Matchers.containsString; 013import static org.junit.jupiter.api.Assertions.assertEquals; 014import static org.junit.jupiter.api.Assertions.assertTrue; 015 016/** 017 * Unit tests for the <code>HttpRequestHelper</code> class 018 */ 019public class HttpRequestHelperTest { 020 021 @Test 022 public void testGet() throws IOException { 023 HttpRequestHelper helper = new HttpRequestHelper("http://www.google.com"); 024 HttpRequestHelper.Response response = helper.get(Map.of()); 025 assertEquals(HttpURLConnection.HTTP_OK, response.getHttpStatusCode()); 026 assertTrue(response.getContent().contains("Google")); 027 } 028 029 @Test 030 public void testGetWithParameters() throws IOException { 031 HttpRequestHelper helper = new HttpRequestHelper("https://www.google.com/search"); 032 HttpRequestHelper.Response response = helper.get(Map.of("p", "Java")); 033 assertEquals(HttpURLConnection.HTTP_OK, response.getHttpStatusCode()); 034 assertTrue(response.getContent().contains("Java")); 035 } 036 037 @Test 038 void restExceptionStackTraceContainsHttpCode() { 039 int httpCode = 42; 040 String message = "MESSAGE"; 041 HttpRequestHelper.RestException ex = new HttpRequestHelper.RestException(httpCode, message); 042 043 StringWriter sw = new StringWriter(); 044 ex.printStackTrace(new PrintWriter(sw, true)); 045 046 String stackTrace = sw.toString(); 047 assertThat(stackTrace, containsString(String.valueOf(httpCode))); 048 assertThat(stackTrace, containsString(message)); 049 } 050 051}