001package edu.pdx.cs.joy.phonebillweb; 002 003import edu.pdx.cs.joy.ParserException; 004import edu.pdx.cs.joy.web.HttpRequestHelper; 005import edu.pdx.cs.joy.web.HttpRequestHelper.Response; 006import org.junit.jupiter.api.Test; 007 008import java.io.IOException; 009import java.io.StringWriter; 010import java.util.Map; 011 012import static org.hamcrest.MatcherAssert.assertThat; 013import static org.hamcrest.Matchers.equalTo; 014import static org.mockito.ArgumentMatchers.eq; 015import static org.mockito.Mockito.mock; 016import static org.mockito.Mockito.when; 017 018public class PhoneBillRestClientTest { 019 020 @Test 021 void getAllDictionaryEntriesPerformsHttpGetWithNoParameters() throws ParserException, IOException { 022 Map<String, String> dictionary = Map.of("One", "1", "Two", "2"); 023 024 HttpRequestHelper http = mock(HttpRequestHelper.class); 025 when(http.get(eq(Map.of()))).thenReturn(dictionaryAsText(dictionary)); 026 027 PhoneBillRestClient client = new PhoneBillRestClient(http); 028 029 assertThat(client.getAllDictionaryEntries(), equalTo(dictionary)); 030 } 031 032 private Response dictionaryAsText(Map<String, String> dictionary) { 033 StringWriter writer = new StringWriter(); 034 new TextDumper(writer).dump(dictionary); 035 036 return new Response(writer.toString()); 037 } 038}