Ditch Google Truth 71/100871/1
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 28 Apr 2022 17:26:13 +0000 (19:26 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 28 Apr 2022 17:26:13 +0000 (19:26 +0200)
Truth is not bringing much to the table, use Hamcrest and JUnit
assertions instead.

Change-Id: Ib1badc61ff2bd2ccea27053b037382c625cb1c04
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
trace/mdsal-trace-impl/pom.xml
trace/mdsal-trace-impl/src/test/java/org/opendaylight/mdsal/trace/impl/CloseTrackedRegistryTest.java
trace/mdsal-trace-impl/src/test/java/org/opendaylight/mdsal/trace/test/TracingBrokerTest.java

index eccf2a990afea968139fd0c61d52deea7b1785b7..59fbd52b4466277f76bb902f3ce7d9dc19684755 100644 (file)
@@ -17,7 +17,6 @@
     </parent>
 
     <artifactId>mdsal-trace-impl</artifactId>
-    <version>10.0.0-SNAPSHOT</version>
     <packaging>bundle</packaging>
 
     <dependencies>
             <groupId>org.opendaylight.mdsal</groupId>
             <artifactId>mdsal-binding-dom-codec-api</artifactId>
         </dependency>
-
-        <!-- Testing Dependencies -->
-        <dependency>
-            <groupId>com.google.truth</groupId>
-            <artifactId>truth</artifactId>
-        </dependency>
     </dependencies>
 
     <build>
index 13542ab202650c34f3bfc53ca3edf54e0f702ad5..b460a8dc5e2461e956faed29f4d870be6aea8ba3 100644 (file)
@@ -7,9 +7,14 @@
  */
 package org.opendaylight.mdsal.trace.impl;
 
-import static com.google.common.truth.Truth.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.hasSize;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.util.Collection;
+import java.util.List;
 import java.util.Set;
 import java.util.function.Predicate;
 import org.junit.Test;
@@ -41,15 +46,15 @@ public class CloseTrackedRegistryTest {
         SomethingClosable forgotToCloseOnce = new SomethingClosable(registry);
 
         Set<CloseTrackedRegistryReportEntry<SomethingClosable>> uniqueNonClosed = registry.getAllUnique();
-        assertThat(uniqueNonClosed).hasSize(2);
-        assertThatIterableContains(uniqueNonClosed, entry ->
+        assertThat(uniqueNonClosed, hasSize(2));
+        assertContains(uniqueNonClosed, entry ->
             entry.getNumberAddedNotRemoved() == 100 || entry.getNumberAddedNotRemoved() == 1);
         uniqueNonClosed.forEach(entry -> {
             if (entry.getNumberAddedNotRemoved() == 100) {
-                assertThatIterableContains(entry.getStackTraceElements(),
+                assertContains(entry.getStackTraceElements(),
                     element -> element.getMethodName().equals("someOtherMethodWhichDoesNotClose"));
             } else if (entry.getNumberAddedNotRemoved() == 1) {
-                assertThatIterableContains(entry.getStackTraceElements(),
+                assertContains(entry.getStackTraceElements(),
                     element -> element.getMethodName().equals("testDuplicateAllocationContexts"));
             } else {
                 fail("Unexpected number of added, not removed: " + entry.getNumberAddedNotRemoved());
@@ -57,14 +62,9 @@ public class CloseTrackedRegistryTest {
         });
     }
 
-    // Something like this really should be in Google Truth...
-    private static <T> void assertThatIterableContains(final Iterable<T> iterable, final Predicate<T> predicate) {
-        for (T element : iterable) {
-            if (predicate.test(element)) {
-                return;
-            }
-        }
-        fail("Iterable did not contain any element matching predicate");
+    // FIXME: use a Matcher
+    private static <T> void assertContains(final Collection<T> collection, final Predicate<T> predicate) {
+        assertTrue("Iterable did not contain any element matching predicate", collection.stream().anyMatch(predicate));
     }
 
     @SuppressWarnings({ "resource", "unused" })
@@ -82,11 +82,11 @@ public class CloseTrackedRegistryTest {
 
         Set<CloseTrackedRegistryReportEntry<SomethingClosable>>
             closeRegistryReport = debugContextDisabledRegistry.getAllUnique();
-        assertThat(closeRegistryReport).hasSize(1);
+        assertThat(closeRegistryReport, hasSize(1));
 
         CloseTrackedRegistryReportEntry<SomethingClosable>
             closeRegistryReportEntry1 = closeRegistryReport.iterator().next();
-        assertThat(closeRegistryReportEntry1.getNumberAddedNotRemoved()).isEqualTo(1);
-        assertThat(closeRegistryReportEntry1.getStackTraceElements()).isEmpty();
+        assertEquals(1, closeRegistryReportEntry1.getNumberAddedNotRemoved());
+        assertEquals(List.of(), closeRegistryReportEntry1.getStackTraceElements());
     }
 }
index 0326597be19275a2b342cc99f3e8f2c3a7e095bf..188a4f4bfe2ba098a927d53af3170150ed74d273 100644 (file)
@@ -7,8 +7,11 @@
  */
 package org.opendaylight.mdsal.trace.test;
 
-import static com.google.common.truth.Truth.assertThat;
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 
@@ -30,7 +33,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsaltra
  * @author Michael Vorburger.ch
  */
 public class TracingBrokerTest {
-
     @Test
     @SuppressWarnings({ "resource", "unused" }) // Finding resource leaks is the point of this test
     public void testPrintOpenTransactions() {
@@ -52,26 +54,25 @@ public class TracingBrokerTest {
         boolean printReturnValue = tracingBroker.printOpenTransactions(ps, 1);
         String output = new String(baos.toByteArray(), UTF_8);
 
-        assertThat(printReturnValue).isTrue();
+        assertTrue(printReturnValue);
         // Assert expectations about stack trace
-        assertThat(output).contains("testPrintOpenTransactions(TracingBrokerTest.java");
-        assertThat(output).doesNotContain(TracingBroker.class.getName());
+        assertThat(output, containsString("testPrintOpenTransactions(TracingBrokerTest.java"));
+        assertThat(output, not(containsString(TracingBroker.class.getName())));
 
         String previousLine = "";
         for (String line : output.split("\n")) {
             if (line.contains("(...")) {
-                assertThat(previousLine.contains("(...)")).isFalse();
+                assertThat(previousLine, not(containsString("(...)")));
             }
             previousLine = line;
         }
 
         // assert that the sorting works - the x3 is shown before the x1
-        assertThat(output).contains("  DataBroker : newReadWriteTransaction()\n    3x");
+        assertThat(output, containsString("  DataBroker : newReadWriteTransaction()\n    3x"));
 
         // We don't do any verify/times on the mocks,
         // because the main point of the test is just to verify that
         // printOpenTransactions runs through without any exceptions
         // (e.g. it used to have a ClassCastException).
     }
-
 }