From e393f87f415a3adc20322784a9a9e119f0e75591 Mon Sep 17 00:00:00 2001 From: Zoe Abrams Date: Mon, 21 Dec 2020 13:14:47 -0800 Subject: [PATCH 1/9] Change SampleData and add javadoc --- .../edu/mills/cs180a/wordui/model/SampleData.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java index f9d8846..cb97580 100644 --- a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java +++ b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java @@ -25,7 +25,7 @@ private static int getFrequencyFromSummary(FrequencySummary fs, int year) { // freqObjects is a List [{"year" = "2012", "count" = 179}] for "Java" if (freqObjects instanceof List) { - List maps = (List) freqObjects; + List maps = freqObjects; for (Object map : maps) { if (map instanceof Map) { @SuppressWarnings("unchecked") @@ -57,11 +57,21 @@ private static WordRecord buildWordRecord(String word, Map defin definition.get("text").toString()); } + private static WordOfTheDay getWordOfTheDay(WordsApi wordsApi) { + return wordsApi.getWordOfTheDay(); + } + + /** + * Adds sample data to {@link ObservableList}. + * + * @param backingList ObservableList to which to add sample {@link WordRecord}s + * @throws IOException if unable to get API key + */ public static void fillSampleData(ObservableList backingList) { try { client = ApiClientHelper.getApiClient(); WordsApi wordsApi = client.buildClient(WordsApi.class); - WordOfTheDay word = wordsApi.getWordOfTheDay(); + WordOfTheDay word = getWordOfTheDay(wordsApi); List definitions = word.getDefinitions(); if (definitions != null && !definitions.isEmpty()) { Object definition = definitions.get(0); From 8d92482a72f1e905ec209fc363b30fb9ffc7884c Mon Sep 17 00:00:00 2001 From: Zoe Abrams Date: Mon, 21 Dec 2020 14:05:47 -0800 Subject: [PATCH 2/9] javadoc --- .gitignore | 1 + src/main/java/edu/mills/cs180a/wordui/model/SampleData.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index 288a569..4ab02c4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .metadata +doc/ bin/ tmp/ *.tmp diff --git a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java index cb97580..fc7238f 100644 --- a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java +++ b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java @@ -12,6 +12,12 @@ import edu.mills.cs180a.wordnik.client.model.WordOfTheDay; import javafx.collections.ObservableList; +/** + * A resource to process sample data. + * + * @author Ellen Spertus + * @author Zoe Abrams + */ public class SampleData { @VisibleForTesting protected static final String FREQ_COUNT_KEY = "count"; From 1870119218e7a5b5b5b0e0a47d8599188fbd5e92 Mon Sep 17 00:00:00 2001 From: Zoe Abrams Date: Tue, 22 Dec 2020 19:29:34 -0800 Subject: [PATCH 3/9] Update javadoc Resolved reviewed issues. --- pom.xml | 7 +++++++ .../java/edu/mills/cs180a/wordui/model/SampleData.java | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 6e457ab..5437085 100644 --- a/pom.xml +++ b/pom.xml @@ -67,6 +67,13 @@ guava-annotations r03 + + + org.mockito + mockito-core + 3.6.0 + test + diff --git a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java index fc7238f..20dbbc8 100644 --- a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java +++ b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java @@ -68,9 +68,9 @@ private static WordOfTheDay getWordOfTheDay(WordsApi wordsApi) { } /** - * Adds sample data to {@link ObservableList}. + * Adds sample data to the provided observable list. * - * @param backingList ObservableList to which to add sample {@link WordRecord}s + * @param backingList the list * @throws IOException if unable to get API key */ public static void fillSampleData(ObservableList backingList) { From 95e31ff154e247c25e0338606e6e2fe8daae9078 Mon Sep 17 00:00:00 2001 From: Zoe Abrams Date: Tue, 22 Dec 2020 23:16:43 -0800 Subject: [PATCH 4/9] Javadoc and refactor for parts 1 and 2 --- .../mills/cs180a/wordui/model/SampleData.java | 46 +++++++++++-------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java index 20dbbc8..9367d3e 100644 --- a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java +++ b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java @@ -75,27 +75,37 @@ private static WordOfTheDay getWordOfTheDay(WordsApi wordsApi) { */ public static void fillSampleData(ObservableList backingList) { try { - client = ApiClientHelper.getApiClient(); - WordsApi wordsApi = client.buildClient(WordsApi.class); - WordOfTheDay word = getWordOfTheDay(wordsApi); - List definitions = word.getDefinitions(); - if (definitions != null && !definitions.isEmpty()) { - Object definition = definitions.get(0); - if (definition instanceof Map) { - @SuppressWarnings("unchecked") - Map definitionAsMap = (Map) definition; - backingList.add(buildWordRecord(word.getWord(), definitionAsMap)); - } - } + addWordOfTheDay(backingList); } catch (IOException e) { System.err.println("Unable to get API key."); + } finally { + backingList.add(new WordRecord("buffalo", 5153, "The North American bison.")); + backingList.add(new WordRecord("school", 23736, "A large group of aquatic animals.")); + backingList.add(new WordRecord("Java", + 179, "An island of Indonesia in the Malay Archipelago")); + backingList.add(new WordRecord("random", + 794, "Having no specific pattern, purpose, or objective")); } + } - backingList.add(new WordRecord("buffalo", 5153, "The North American bison.")); - backingList.add(new WordRecord("school", 23736, "A large group of aquatic animals.")); - backingList.add(new WordRecord("Java", - 179, "An island of Indonesia in the Malay Archipelago")); - backingList.add(new WordRecord("random", - 794, "Having no specific pattern, purpose, or objective")); + /** + * Sets up client and gets word data with which to populate the data list. + * + * @param backingList the observable list + * @throws IOException if client initialization fails + */ + public static void addWordOfTheDay(ObservableList backingList) throws IOException { + client = ApiClientHelper.getApiClient(); + WordsApi wordsApi = client.buildClient(WordsApi.class); + WordOfTheDay word = getWordOfTheDay(wordsApi); + List definitions = word.getDefinitions(); + if (definitions != null && !definitions.isEmpty()) { + Object definition = definitions.get(0); + if (definition instanceof Map) { + @SuppressWarnings("unchecked") + Map definitionAsMap = (Map) definition; + backingList.add(buildWordRecord(word.getWord(), definitionAsMap)); + } + } } } From 8e38d6a6dbc28895bfa0067d43acbee8a0477767 Mon Sep 17 00:00:00 2001 From: Zoe Abrams Date: Tue, 22 Dec 2020 23:17:40 -0800 Subject: [PATCH 5/9] Simplify javadoc --- src/main/java/edu/mills/cs180a/wordui/model/SampleData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java index 9367d3e..4728d24 100644 --- a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java +++ b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java @@ -91,7 +91,7 @@ public static void fillSampleData(ObservableList backingList) { /** * Sets up client and gets word data with which to populate the data list. * - * @param backingList the observable list + * @param backingList the list * @throws IOException if client initialization fails */ public static void addWordOfTheDay(ObservableList backingList) throws IOException { From c659f9f92d62508f3774bc56d8a3c895662a44a6 Mon Sep 17 00:00:00 2001 From: Zoe Abrams Date: Wed, 23 Dec 2020 16:23:20 -0800 Subject: [PATCH 6/9] Add mocking --- .../mills/cs180a/wordui/model/SampleData.java | 15 ++++--- .../cs180a/wordui/model/SampleDataTest.java | 45 ++++++++++++++++++- 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java index 4728d24..43236ef 100644 --- a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java +++ b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java @@ -63,7 +63,8 @@ private static WordRecord buildWordRecord(String word, Map defin definition.get("text").toString()); } - private static WordOfTheDay getWordOfTheDay(WordsApi wordsApi) { + @VisibleForTesting + protected static WordOfTheDay getWordOfTheDay(WordsApi wordsApi) { return wordsApi.getWordOfTheDay(); } @@ -75,7 +76,9 @@ private static WordOfTheDay getWordOfTheDay(WordsApi wordsApi) { */ public static void fillSampleData(ObservableList backingList) { try { - addWordOfTheDay(backingList); + client = ApiClientHelper.getApiClient(); + WordsApi wordsApi = client.buildClient(WordsApi.class); + addWordOfTheDay(wordsApi, backingList); } catch (IOException e) { System.err.println("Unable to get API key."); } finally { @@ -89,14 +92,12 @@ public static void fillSampleData(ObservableList backingList) { } /** - * Sets up client and gets word data with which to populate the data list. + * Adds a new word of the day to the list. * * @param backingList the list - * @throws IOException if client initialization fails */ - public static void addWordOfTheDay(ObservableList backingList) throws IOException { - client = ApiClientHelper.getApiClient(); - WordsApi wordsApi = client.buildClient(WordsApi.class); + public static void addWordOfTheDay(WordsApi wordsApi, ObservableList backingList) { + WordOfTheDay word = getWordOfTheDay(wordsApi); List definitions = word.getDefinitions(); if (definitions != null && !definitions.isEmpty()) { diff --git a/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java b/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java index a7808ec..141abfa 100644 --- a/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java +++ b/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java @@ -3,19 +3,32 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.io.IOException; import java.util.List; import java.util.Map; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; import edu.mills.cs180a.wordnik.client.api.WordApi; +import edu.mills.cs180a.wordnik.client.api.WordsApi; +import edu.mills.cs180a.wordnik.client.model.WordOfTheDay; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import edu.mills.cs180a.wordnik.client.model.FrequencySummary; class SampleDataTest { - private final WordApi mockWordApi = mock(WordApi.class); + private static final WordApi mockWordApi = mock(WordApi.class); + private static final WordsApi mockWordsApi = mock(WordsApi.class); + + private static final WordOfTheDay WORD = + makeWordOfTheDay("cromulent", List.of("a valid word", "appropriate for use")); + private static final Map FREQS_MAP = Map.of( + "cromulent", makeFrequencySummary(List.of(makeMap(2000, 10), makeMap(2001, 20))), "apple", makeFrequencySummary(List.of(makeMap(2000, 339), makeMap(2001, 464))), "orange", makeFrequencySummary(List.of(makeMap(2000, 774), makeMap(2001, 941)))); @@ -23,6 +36,9 @@ class SampleDataTest { void setup() { when(mockWordApi.getWordFrequency(anyString(), anyString(), anyInt(), anyInt())) .thenAnswer(invocation -> FREQS_MAP.get(invocation.getArgument(0))); + + when(mockWordsApi.getWordOfTheDay()) + .thenAnswer(invocation -> WORD); } private static Map makeMap(int year, int count) { @@ -36,6 +52,33 @@ private static FrequencySummary makeFrequencySummary(List freqs) { return fs; } + private static WordOfTheDay makeWordOfTheDay(String words, List definitions) { + WordOfTheDay wrd = mock(WordOfTheDay.class); + when(wrd.getWord()).thenReturn(words); + when(wrd.getDefinitions()).thenReturn(definitions); + return wrd; + } + + @Test + void testGetWordOfTheDayGetWord() { + assertEquals("cromulent", SampleData.getWordOfTheDay(mockWordsApi).getWord()); + } + + @Test + void testGetWordOfTheDayGetDefinitions() { + assertEquals(List.of("a valid word", "appropriate for use"), + SampleData.getWordOfTheDay(mockWordsApi).getDefinitions()); + } + + @Test + void testAddWordOfTheDay() { + ObservableList list = FXCollections.observableArrayList( + new WordRecord("schoolbus", 23736, "A bus to take children to school.")); + assertEquals("schoolbus", list.get(0).getWord()); + SampleData.addWordOfTheDay(mockWordsApi, list); + assertEquals("cromulent", list.get(0).getWord()); + } + @ParameterizedTest @CsvSource({"apple,2000,339", "apple,2001,464", "apple,2020,0", "orange,2000,774", "orange,2001,941", "orange,2050,0"}) From 10782ac4dc4a515bcc46f5e3fe3dcc0ad67d7fc2 Mon Sep 17 00:00:00 2001 From: Zoe Abrams Date: Wed, 23 Dec 2020 19:47:15 -0800 Subject: [PATCH 7/9] Add requested edits Everything works except AddWordOfTheDay() and the associated tests. --- .../mills/cs180a/wordui/model/SampleData.java | 5 +++ .../cs180a/wordui/model/SampleDataTest.java | 41 ++++++++++++++++--- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java index 43236ef..cc4e9be 100644 --- a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java +++ b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java @@ -79,6 +79,7 @@ public static void fillSampleData(ObservableList backingList) { client = ApiClientHelper.getApiClient(); WordsApi wordsApi = client.buildClient(WordsApi.class); addWordOfTheDay(wordsApi, backingList); + // addWordOfTheDay(backingList); } catch (IOException e) { System.err.println("Unable to get API key."); } finally { @@ -97,6 +98,10 @@ public static void fillSampleData(ObservableList backingList) { * @param backingList the list */ public static void addWordOfTheDay(WordsApi wordsApi, ObservableList backingList) { + // public static void addWordOfTheDay(ObservableList backingList) throws + // IOException { + // client = ApiClientHelper.getApiClient(); + // WordsApi wordsApi = client.buildClient(WordsApi.class); WordOfTheDay word = getWordOfTheDay(wordsApi); List definitions = word.getDefinitions(); diff --git a/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java b/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java index 141abfa..0f9b338 100644 --- a/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java +++ b/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java @@ -1,6 +1,7 @@ package edu.mills.cs180a.wordui.model; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyMap; @@ -24,14 +25,40 @@ class SampleDataTest { private static final WordApi mockWordApi = mock(WordApi.class); private static final WordsApi mockWordsApi = mock(WordsApi.class); + private static final Map DEF1 = Map.of("text", "a valid word", + "partOfSpeech", "adjective", + "source", "wiktionary", + "note", "null"); + + private static final Map DEF2 = Map.of("text", "appropriate for use", + "partOfSpeech", "adjective", + "source", "wiktionary", + "note", "null"); + private static final WordOfTheDay WORD = - makeWordOfTheDay("cromulent", List.of("a valid word", "appropriate for use")); + makeWordOfTheDay("cromulent", + List.of( + Map.of("text", "a valid word", + "partOfSpeech", "adjective", + "source", "wiktionary", + "note", "null"), + Map.of("text", "appropriate for use", + "partOfSpeech", "adjective", + "source", "wiktionary", + "note", "null"))); + + // makeWordOfTheDay("cromulent", List.of(DEF1, DEF2)); + // makeWordOfTheDay("cromulent", List.of("a valid word", "appropriate for use")); private static final Map FREQS_MAP = Map.of( "cromulent", makeFrequencySummary(List.of(makeMap(2000, 10), makeMap(2001, 20))), "apple", makeFrequencySummary(List.of(makeMap(2000, 339), makeMap(2001, 464))), "orange", makeFrequencySummary(List.of(makeMap(2000, 774), makeMap(2001, 941)))); + // private static final WordRecord WORDRECORD = new WordRecord(WORD.getWord(), + // FREQS_MAP.get(0).getFrequency().get(0).get(2000), + // (String) WORD.getDefinitions().get(0).get("text")); + @BeforeEach void setup() { when(mockWordApi.getWordFrequency(anyString(), anyString(), anyInt(), anyInt())) @@ -52,7 +79,8 @@ private static FrequencySummary makeFrequencySummary(List freqs) { return fs; } - private static WordOfTheDay makeWordOfTheDay(String words, List definitions) { + private static WordOfTheDay makeWordOfTheDay(String words, + List definitions) { WordOfTheDay wrd = mock(WordOfTheDay.class); when(wrd.getWord()).thenReturn(words); when(wrd.getDefinitions()).thenReturn(definitions); @@ -66,17 +94,18 @@ void testGetWordOfTheDayGetWord() { @Test void testGetWordOfTheDayGetDefinitions() { - assertEquals(List.of("a valid word", "appropriate for use"), - SampleData.getWordOfTheDay(mockWordsApi).getDefinitions()); + assertTrue(SampleData.getWordOfTheDay(mockWordsApi).getDefinitions().get(0) instanceof Map); } @Test - void testAddWordOfTheDay() { + void testAddWordOfTheDay() throws IOException { ObservableList list = FXCollections.observableArrayList( new WordRecord("schoolbus", 23736, "A bus to take children to school.")); assertEquals("schoolbus", list.get(0).getWord()); SampleData.addWordOfTheDay(mockWordsApi, list); - assertEquals("cromulent", list.get(0).getWord()); + // SampleData.addWordOfTheDay(list); + assertEquals(2, list.size()); + assertEquals("cromulent", list.get(1).getWord()); } @ParameterizedTest From 5085dacbccfd5e6a24e762a217eef98413308be2 Mon Sep 17 00:00:00 2001 From: Zoe Abrams Date: Wed, 23 Dec 2020 21:53:07 -0800 Subject: [PATCH 8/9] Complete and all tests pass --- .../mills/cs180a/wordui/model/SampleData.java | 17 +++++----- .../cs180a/wordui/model/SampleDataTest.java | 31 ++++++------------- 2 files changed, 17 insertions(+), 31 deletions(-) diff --git a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java index cc4e9be..448f2be 100644 --- a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java +++ b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java @@ -55,8 +55,8 @@ protected static int getFrequencyByYear(WordApi wordApi, String word, int year) return getFrequencyFromSummary(fs, year); } - private static WordRecord buildWordRecord(String word, Map definition) { - WordApi wordApi = client.buildClient(WordApi.class); + private static WordRecord buildWordRecord(WordApi wordApi, String word, + Map definition) { return new WordRecord( word, getFrequencyByYear(wordApi, word, FREQ_YEAR), @@ -78,8 +78,8 @@ public static void fillSampleData(ObservableList backingList) { try { client = ApiClientHelper.getApiClient(); WordsApi wordsApi = client.buildClient(WordsApi.class); - addWordOfTheDay(wordsApi, backingList); - // addWordOfTheDay(backingList); + WordApi wordApi = client.buildClient(WordApi.class); + addWordOfTheDay(wordsApi, wordApi, backingList); } catch (IOException e) { System.err.println("Unable to get API key."); } finally { @@ -97,11 +97,8 @@ public static void fillSampleData(ObservableList backingList) { * * @param backingList the list */ - public static void addWordOfTheDay(WordsApi wordsApi, ObservableList backingList) { - // public static void addWordOfTheDay(ObservableList backingList) throws - // IOException { - // client = ApiClientHelper.getApiClient(); - // WordsApi wordsApi = client.buildClient(WordsApi.class); + public static void addWordOfTheDay(WordsApi wordsApi, WordApi wordApi, + ObservableList backingList) { WordOfTheDay word = getWordOfTheDay(wordsApi); List definitions = word.getDefinitions(); @@ -110,7 +107,7 @@ public static void addWordOfTheDay(WordsApi wordsApi, ObservableList if (definition instanceof Map) { @SuppressWarnings("unchecked") Map definitionAsMap = (Map) definition; - backingList.add(buildWordRecord(word.getWord(), definitionAsMap)); + backingList.add(buildWordRecord(wordApi, word.getWord(), definitionAsMap)); } } } diff --git a/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java b/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java index 0f9b338..1fbb420 100644 --- a/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java +++ b/src/test/java/edu/mills/cs180a/wordui/model/SampleDataTest.java @@ -4,7 +4,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.io.IOException; @@ -25,16 +24,6 @@ class SampleDataTest { private static final WordApi mockWordApi = mock(WordApi.class); private static final WordsApi mockWordsApi = mock(WordsApi.class); - private static final Map DEF1 = Map.of("text", "a valid word", - "partOfSpeech", "adjective", - "source", "wiktionary", - "note", "null"); - - private static final Map DEF2 = Map.of("text", "appropriate for use", - "partOfSpeech", "adjective", - "source", "wiktionary", - "note", "null"); - private static final WordOfTheDay WORD = makeWordOfTheDay("cromulent", List.of( @@ -47,18 +36,11 @@ class SampleDataTest { "source", "wiktionary", "note", "null"))); - // makeWordOfTheDay("cromulent", List.of(DEF1, DEF2)); - // makeWordOfTheDay("cromulent", List.of("a valid word", "appropriate for use")); - private static final Map FREQS_MAP = Map.of( "cromulent", makeFrequencySummary(List.of(makeMap(2000, 10), makeMap(2001, 20))), "apple", makeFrequencySummary(List.of(makeMap(2000, 339), makeMap(2001, 464))), "orange", makeFrequencySummary(List.of(makeMap(2000, 774), makeMap(2001, 941)))); - // private static final WordRecord WORDRECORD = new WordRecord(WORD.getWord(), - // FREQS_MAP.get(0).getFrequency().get(0).get(2000), - // (String) WORD.getDefinitions().get(0).get("text")); - @BeforeEach void setup() { when(mockWordApi.getWordFrequency(anyString(), anyString(), anyInt(), anyInt())) @@ -93,17 +75,24 @@ void testGetWordOfTheDayGetWord() { } @Test - void testGetWordOfTheDayGetDefinitions() { + void testGetWordOfTheDayGetDefinitionInstanceofMap() { assertTrue(SampleData.getWordOfTheDay(mockWordsApi).getDefinitions().get(0) instanceof Map); } + @Test + void testGetWordOfTheDayGetDefinition() { + @SuppressWarnings("unchecked") + Map definitions = (Map) SampleData + .getWordOfTheDay(mockWordsApi).getDefinitions().get(0); + assertEquals("a valid word", definitions.get("text")); + } + @Test void testAddWordOfTheDay() throws IOException { ObservableList list = FXCollections.observableArrayList( new WordRecord("schoolbus", 23736, "A bus to take children to school.")); assertEquals("schoolbus", list.get(0).getWord()); - SampleData.addWordOfTheDay(mockWordsApi, list); - // SampleData.addWordOfTheDay(list); + SampleData.addWordOfTheDay(mockWordsApi, mockWordApi, list); assertEquals(2, list.size()); assertEquals("cromulent", list.get(1).getWord()); } From 7393f601223156b5d154bbeb38762da3d82c86fc Mon Sep 17 00:00:00 2001 From: Zoe Abrams Date: Wed, 23 Dec 2020 22:08:37 -0800 Subject: [PATCH 9/9] Remove unnecessary finally --- .../edu/mills/cs180a/wordui/model/SampleData.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java index 448f2be..d82a9c9 100644 --- a/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java +++ b/src/main/java/edu/mills/cs180a/wordui/model/SampleData.java @@ -82,14 +82,13 @@ public static void fillSampleData(ObservableList backingList) { addWordOfTheDay(wordsApi, wordApi, backingList); } catch (IOException e) { System.err.println("Unable to get API key."); - } finally { - backingList.add(new WordRecord("buffalo", 5153, "The North American bison.")); - backingList.add(new WordRecord("school", 23736, "A large group of aquatic animals.")); - backingList.add(new WordRecord("Java", - 179, "An island of Indonesia in the Malay Archipelago")); - backingList.add(new WordRecord("random", - 794, "Having no specific pattern, purpose, or objective")); } + backingList.add(new WordRecord("buffalo", 5153, "The North American bison.")); + backingList.add(new WordRecord("school", 23736, "A large group of aquatic animals.")); + backingList.add(new WordRecord("Java", + 179, "An island of Indonesia in the Malay Archipelago")); + backingList.add(new WordRecord("random", + 794, "Having no specific pattern, purpose, or objective")); } /**