Changeset: 702998f3a773 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/702998f3a773
Modified Files:
        src/test/java/org/monetdb/jdbc/ApiTests.java
        src/test/java/org/monetdb/jdbc/LoggingTests.java
        src/test/java/org/monetdb/jdbc/TLSTests.java
        src/test/java/org/monetdb/testinfra/Assertions.java
Branch: default
Log Message:

Introduce assertContains


diffs (122 lines):

diff --git a/src/test/java/org/monetdb/jdbc/ApiTests.java 
b/src/test/java/org/monetdb/jdbc/ApiTests.java
--- a/src/test/java/org/monetdb/jdbc/ApiTests.java
+++ b/src/test/java/org/monetdb/jdbc/ApiTests.java
@@ -20,6 +20,7 @@ import java.util.HashMap;
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.jupiter.api.Assertions.*;
 import static org.junit.jupiter.api.Assumptions.assumeTrue;
+import static org.monetdb.testinfra.Assertions.assertContains;
 import static org.monetdb.testinfra.Assertions.assertSQLException;
 
 /**
@@ -660,8 +661,8 @@ public class ApiTests {
                        ResultSetMetaData md = rs.getMetaData();
                        assertTrue(rs.next());
                        String line = rs.getString(2);
-                       assertTrue(line.contains(":= querylog.define"), line);
-                       assertTrue(line.contains("select 42"), line);
+                       assertContains(":= querylog.define", line);
+                       assertContains("select 42", line);
                } finally {
                        if (rs != null)
                                rs.close();
@@ -1823,7 +1824,7 @@ public class ApiTests {
 
                        // Committing conn2 fails, somehow conn1 and conn2 
fight over the primary key index
                        SQLException sqle = assertThrows(SQLException.class, 
conn2::commit);
-                       assertTrue(sqle.getMessage().contains("concurrency 
conflicts"), sqle.getMessage());
+                       assertContains("concurrency conflicts", 
sqle.getMessage());
 
                        conn2.setAutoCommit(true);
                        stmt2.execute("INSERT INTO tconc_seq(who) VALUES 
('client2')");
diff --git a/src/test/java/org/monetdb/jdbc/LoggingTests.java 
b/src/test/java/org/monetdb/jdbc/LoggingTests.java
--- a/src/test/java/org/monetdb/jdbc/LoggingTests.java
+++ b/src/test/java/org/monetdb/jdbc/LoggingTests.java
@@ -19,6 +19,7 @@ import java.util.List;
 import java.util.Properties;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.monetdb.testinfra.Assertions.assertContains;
 
 public class LoggingTests {
        @TempDir
@@ -78,7 +79,7 @@ public class LoggingTests {
 
                byte[] contentBytes = Files.readAllBytes(logFile);
                String content = new String(contentBytes, 
StandardCharsets.UTF_8);
-               assertTrue(content.contains(data));
+               assertContains(data, content);
        }
 
 
diff --git a/src/test/java/org/monetdb/jdbc/TLSTests.java 
b/src/test/java/org/monetdb/jdbc/TLSTests.java
--- a/src/test/java/org/monetdb/jdbc/TLSTests.java
+++ b/src/test/java/org/monetdb/jdbc/TLSTests.java
@@ -27,6 +27,7 @@ import java.net.URLConnection;
 import java.sql.SQLException;
 
 import static org.junit.jupiter.api.Assertions.*;
+import static org.monetdb.testinfra.Assertions.assertNotContains;
 import static org.monetdb.testinfra.Assertions.assertSQLException;
 
 @Tag("tls")
@@ -102,7 +103,7 @@ public class TLSTests {
         */
        private String download(String name) throws IOException {
                assertTrue(name.startsWith("/"));
-               assertFalse(name.substring(1).contains("/"));
+               assertNotContains("/", name.substring(1));
                File filename = new File(tmpDir, name.substring(1));
                try (FileOutputStream out = new FileOutputStream(filename)) {
                        fetch(name, out);
diff --git a/src/test/java/org/monetdb/testinfra/Assertions.java 
b/src/test/java/org/monetdb/testinfra/Assertions.java
--- a/src/test/java/org/monetdb/testinfra/Assertions.java
+++ b/src/test/java/org/monetdb/testinfra/Assertions.java
@@ -13,6 +13,7 @@ package org.monetdb.testinfra;
 
 import java.sql.SQLException;
 
+import static org.junit.jupiter.api.AssertionFailureBuilder.assertionFailure;
 import static org.junit.jupiter.api.Assertions.fail;
 
 public class Assertions {
@@ -41,5 +42,39 @@ public class Assertions {
 
        }
 
+       public static void assertContains(String needle, String haystack) {
+               assertContains(needle, haystack, null);
+       }
 
+       public static void assertContains(String needle, String haystack, 
String message) {
+               if (needle == null)
+                       assertionFailure().reason("substring to search must not 
be null").buildAndThrow();
+               if (haystack != null && haystack.contains(needle))
+                       return;
+
+               assertionFailure() //
+                               .reason("substring not found") //
+                               .message(message) //
+                               .expected(needle) //
+                               .actual(haystack) //
+                               .buildAndThrow();
+       }
+
+       public static void assertNotContains(String needle, String haystack) {
+               assertNotContains(needle, haystack, null);
+       }
+
+       public static void assertNotContains(String needle, String haystack, 
String message) {
+               if (needle == null)
+                       assertionFailure().reason("substring to search must not 
be null").buildAndThrow();
+               if (haystack != null && !haystack.contains(needle))
+                       return;
+
+               assertionFailure() //
+                               .reason("forbidden substring did occur") //
+                               .message(message) //
+                               .expected(needle) //
+                               .actual(haystack) //
+                               .buildAndThrow();
+       }
 }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to