From 2388534c0c1c515554a9fb53297ab75cc51812d0 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Wed, 1 Dec 2021 18:51:19 -0600 Subject: [PATCH] Increasing test coverage --- .../qqq/backend/core/utils/JsonUtilsTest.java | 38 ++ .../backend/core/utils/ListingHashTest.java | 332 ++++++++++++++++++ 2 files changed, 370 insertions(+) create mode 100644 src/test/java/com/kingsrook/qqq/backend/core/utils/ListingHashTest.java diff --git a/src/test/java/com/kingsrook/qqq/backend/core/utils/JsonUtilsTest.java b/src/test/java/com/kingsrook/qqq/backend/core/utils/JsonUtilsTest.java index 69b05f43..c52b322b 100644 --- a/src/test/java/com/kingsrook/qqq/backend/core/utils/JsonUtilsTest.java +++ b/src/test/java/com/kingsrook/qqq/backend/core/utils/JsonUtilsTest.java @@ -20,6 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertThrowsExactly; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; @@ -43,6 +44,42 @@ class JsonUtilsTest + /******************************************************************************* + ** + *******************************************************************************/ + private static class LooksLikeAnEntityButJustThrowsInItsGetterMethod + { + public String getValue() + { + throw new IllegalStateException("Test"); + } + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + public void test_toJsonNull() + { + assertThrowsExactly(IllegalArgumentException.class, + () -> JsonUtils.toJson(new LooksLikeAnEntityButJustThrowsInItsGetterMethod())); + } + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + public void test_toPrettyJsonNull() + { + assertThrowsExactly(IllegalArgumentException.class, + () -> JsonUtils.toPrettyJson(new LooksLikeAnEntityButJustThrowsInItsGetterMethod())); + } + + + /******************************************************************************* ** *******************************************************************************/ @@ -206,6 +243,7 @@ class JsonUtilsTest } + /******************************************************************************* ** *******************************************************************************/ diff --git a/src/test/java/com/kingsrook/qqq/backend/core/utils/ListingHashTest.java b/src/test/java/com/kingsrook/qqq/backend/core/utils/ListingHashTest.java new file mode 100644 index 00000000..231a6a70 --- /dev/null +++ b/src/test/java/com/kingsrook/qqq/backend/core/utils/ListingHashTest.java @@ -0,0 +1,332 @@ +package com.kingsrook.qqq.backend.core.utils; + + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + + +/******************************************************************************* + ** + *******************************************************************************/ +class ListingHashTest +{ + + /******************************************************************************* + ** + *******************************************************************************/ + private ListingHash makeDefaultTestListingHash() + { + ListingHash listingHash = new ListingHash<>(); + listingHash.add("A", "Apple"); + listingHash.add("A", "Acorn"); + listingHash.add("B", "Ball"); + return listingHash; + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_add() + { + ListingHash listingHash = makeDefaultTestListingHash(); + assertEquals(2, listingHash.size()); + assertEquals(2, listingHash.get("A").size()); + assertEquals(1, listingHash.get("B").size()); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_addAllCollectionKeyFunction() + { + ListingHash listingHash = new ListingHash<>(); + listingHash.addAll(Set.of("Apple", "Acorn", "Ball"), (s -> s.substring(0, 1))); + assertEquals(2, listingHash.size()); + assertEquals(2, listingHash.get("A").size()); + assertEquals(1, listingHash.get("B").size()); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_addAllListingHash() + { + ListingHash source = makeDefaultTestListingHash(); + + ListingHash listingHash = new ListingHash<>(); + source.add("A", "Arrow"); + source.add("C", "Car"); + listingHash.addAll(source); + + assertEquals(3, listingHash.size()); + assertEquals(3, listingHash.get("A").size()); + assertEquals(1, listingHash.get("B").size()); + assertEquals(1, listingHash.get("C").size()); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_addAllKeyCollection() + { + ListingHash listingHash = new ListingHash<>(); + listingHash.add("A", "Arrow"); + listingHash.addAll("A", Set.of("Apple", "Acorn")); + listingHash.addAll("B", Set.of("Ball")); + assertEquals(2, listingHash.size()); + assertEquals(3, listingHash.get("A").size()); + assertEquals(1, listingHash.get("B").size()); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_clear() + { + ListingHash listingHash = makeDefaultTestListingHash(); + listingHash.clear(); + assertEquals(0, listingHash.size()); + assertFalse(listingHash.containsKey("A")); + assertFalse(listingHash.containsKey("B")); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_containsKey() + { + ListingHash listingHash = makeDefaultTestListingHash(); + assertTrue(listingHash.containsKey("A")); + assertTrue(listingHash.containsKey("B")); + assertFalse(listingHash.containsKey("C")); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_containsValue() + { + ListingHash listingHash = makeDefaultTestListingHash(); + assertTrue(listingHash.containsValue(List.of("Apple", "Acorn"))); + assertFalse(listingHash.containsValue("Apple")); + assertFalse(listingHash.containsValue(List.of("Apple"))); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_entrySet() + { + ListingHash listingHash = makeDefaultTestListingHash(); + Set>> entrySet = listingHash.entrySet(); + assertEquals(2, entrySet.size()); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @SuppressWarnings({ "SimplifiableAssertion", "EqualsWithItself" }) + @Test + void test_equals() + { + ListingHash listingHash1 = makeDefaultTestListingHash(); + ListingHash listingHash2 = makeDefaultTestListingHash(); + assertTrue(listingHash1.equals(listingHash2)); + assertTrue(listingHash1.equals(listingHash1)); + assertFalse(listingHash1.equals(new ListingHash<>())); + assertFalse(new ListingHash<>().equals(listingHash1)); + listingHash2.add("C", "Car"); + assertFalse(listingHash1.equals(listingHash2)); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_get() + { + ListingHash listingHash = makeDefaultTestListingHash(); + List aList = listingHash.get("A"); + assertEquals(2, aList.size()); + assertEquals("Apple", aList.get(0)); + assertEquals("Acorn", aList.get(1)); + List bList = listingHash.get("B"); + assertEquals(1, bList.size()); + assertEquals("Ball", bList.get(0)); + assertNull(listingHash.get("C")); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_hashCode() + { + ListingHash listingHash1 = makeDefaultTestListingHash(); + ListingHash listingHash2 = makeDefaultTestListingHash(); + assertEquals(listingHash1.hashCode(), listingHash2.hashCode()); + assertEquals(listingHash1.hashCode(), listingHash1.hashCode()); + assertNotEquals(listingHash1.hashCode(), new ListingHash<>().hashCode()); + listingHash2.add("C", "Car"); + assertNotEquals(listingHash1.hashCode(), listingHash2.hashCode()); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_isEmpty() + { + assertTrue(new ListingHash<>().isEmpty()); + ListingHash listingHash = makeDefaultTestListingHash(); + assertFalse(listingHash.isEmpty()); + listingHash.clear(); + assertTrue(listingHash.isEmpty()); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_keySet() + { + ListingHash listingHash = makeDefaultTestListingHash(); + Set keySet = listingHash.keySet(); + assertEquals(2, keySet.size()); + assertTrue(keySet.contains("A")); + assertTrue(keySet.contains("B")); + assertFalse(keySet.contains("C")); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_put() + { + ListingHash listingHash = makeDefaultTestListingHash(); + listingHash.put("A", List.of("Android")); + assertEquals(2, listingHash.size()); + assertEquals(1, listingHash.get("A").size()); + assertEquals("Android", listingHash.get("A").get(0)); + listingHash.put("C", List.of("Car")); + assertEquals(3, listingHash.size()); + assertEquals(1, listingHash.get("C").size()); + assertEquals("Car", listingHash.get("C").get(0)); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_putAll() + { + ListingHash listingHash = makeDefaultTestListingHash(); + listingHash.putAll(Map.of("C", List.of("Car"), "D", List.of("Dog", "Door"))); + assertEquals(4, listingHash.size()); + assertEquals(2, listingHash.get("A").size()); + assertEquals("Apple", listingHash.get("A").get(0)); + assertEquals("Acorn", listingHash.get("A").get(1)); + assertEquals(1, listingHash.get("C").size()); + assertEquals("Car", listingHash.get("C").get(0)); + assertEquals(2, listingHash.get("D").size()); + assertEquals("Dog", listingHash.get("D").get(0)); + assertEquals("Door", listingHash.get("D").get(1)); + + listingHash.putAll(Map.of("A", List.of("Android"))); + assertEquals(4, listingHash.size()); + assertEquals(1, listingHash.get("A").size()); + assertEquals("Android", listingHash.get("A").get(0)); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_remove() + { + ListingHash listingHash = makeDefaultTestListingHash(); + listingHash.remove("A"); + assertEquals(1, listingHash.size()); + assertFalse(listingHash.containsKey("A")); + listingHash.remove("B"); + assertEquals(0, listingHash.size()); + listingHash.remove("B"); + listingHash.remove("C"); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_size() + { + ListingHash listingHash = makeDefaultTestListingHash(); + assertEquals(2, listingHash.size()); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void test_values() + { + ListingHash listingHash = makeDefaultTestListingHash(); + Collection> values = listingHash.values(); + assertEquals(2, values.size()); + assertTrue(values.contains(List.of("Apple", "Acorn"))); + assertTrue(values.contains(List.of("Ball"))); + } +} \ No newline at end of file