From 67b9d756b09c1d58726b57b7c822d53d3f39fb4a Mon Sep 17 00:00:00 2001 From: Giuseppe Villani Date: Wed, 31 Jul 2024 21:13:04 +0200 Subject: [PATCH] Try to solve TC 5.22 errors (#4163) * Try to solve TC 5.22 errors * copied assertRow to LoadS3Test --- .../src/test/java/apoc/s3/LoadS3Test.java | 12 ++++++++++-- .../src/test/java/apoc/load/LoadCsvTest.java | 18 +++++++++++------- extended/src/test/java/apoc/ml/WatsonTest.java | 7 +++++-- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/extended-it/src/test/java/apoc/s3/LoadS3Test.java b/extended-it/src/test/java/apoc/s3/LoadS3Test.java index b017bae225..9f83839c0c 100644 --- a/extended-it/src/test/java/apoc/s3/LoadS3Test.java +++ b/extended-it/src/test/java/apoc/s3/LoadS3Test.java @@ -14,13 +14,15 @@ import org.junit.jupiter.api.AfterAll; import org.neo4j.driver.internal.util.Iterables; +import org.neo4j.graphdb.Result; import org.neo4j.test.rule.DbmsRule; import org.neo4j.test.rule.ImpermanentDbmsRule; +import java.util.Map; + import static apoc.ApocConfig.APOC_IMPORT_FILE_ENABLED; import static apoc.ApocConfig.APOC_IMPORT_FILE_USE_NEO4J_CONFIG; import static apoc.ApocConfig.apocConfig; -import static apoc.load.LoadCsvTest.assertRow; import static apoc.util.ExtendedITUtil.EXTENDED_PATH; import static apoc.util.MapUtil.map; import static apoc.util.TestUtil.testCall; @@ -82,6 +84,12 @@ public void testLoadCsvS3() { private String removeRegionFromUrl(String url) { return url.replace(s3Container.getEndpointConfiguration().getSigningRegion() + ".", ""); } - + + public static void assertRow(Result r, String name, String age, long lineNo) { + Map row = r.next(); + assertEquals(map("name", name,"age", age), row.get("map")); + assertEquals(asList(name, age), row.get("list")); + assertEquals(lineNo, row.get("lineNo")); + } } diff --git a/extended/src/test/java/apoc/load/LoadCsvTest.java b/extended/src/test/java/apoc/load/LoadCsvTest.java index 51ed709762..98b62aed2a 100644 --- a/extended/src/test/java/apoc/load/LoadCsvTest.java +++ b/extended/src/test/java/apoc/load/LoadCsvTest.java @@ -10,6 +10,7 @@ import org.mockserver.client.MockServerClient; import org.mockserver.integration.ClientAndServer; import org.mockserver.model.Header; +import org.mockserver.socket.PortFactory; import org.neo4j.configuration.GraphDatabaseSettings; import org.neo4j.graphdb.QueryExecutionException; import org.neo4j.graphdb.Result; @@ -45,6 +46,7 @@ public class LoadCsvTest { + private static final int PORT = PortFactory.findFreePort(); private static ClientAndServer mockServer; private static final List> RESPONSE_BODY = List.of( @@ -55,7 +57,7 @@ public class LoadCsvTest { @BeforeClass public static void startServer() { - mockServer = startClientAndServer(1080); + mockServer = startClientAndServer(PORT); } @AfterClass @@ -492,7 +494,7 @@ public void testLoadCsvWithUserPassInUrl() throws JsonProcessingException { String userPass = "user:password"; String token = Util.encodeUserColonPassToBase64(userPass); - new MockServerClient("localhost", 1080) + new MockServerClient("localhost", PORT) .when( request() .withPath("/docs/csv") @@ -508,8 +510,9 @@ public void testLoadCsvWithUserPassInUrl() throws JsonProcessingException { .withDelay(TimeUnit.SECONDS, 1) ); + String url = "http://%s@localhost:%s/docs/csv".formatted(userPass, PORT); testResult(db, "CALL apoc.load.csv($url, {results:['map']}) YIELD map", - map("url", "http://" + userPass + "@localhost:1080/docs/csv"), + map("url", url), (row) -> assertEquals(RESPONSE_BODY, row.stream().map(i->i.get("map")).collect(Collectors.toList())) ); } @@ -519,7 +522,7 @@ public void testLoadCsvParamsWithUserPassInUrl() throws JsonProcessingException String userPass = "user:password"; String token = Util.encodeUserColonPassToBase64(userPass); - new MockServerClient("localhost", 1080) + new MockServerClient("localhost", PORT) .when( request() .withMethod("POST") @@ -536,8 +539,9 @@ public void testLoadCsvParamsWithUserPassInUrl() throws JsonProcessingException .withDelay(TimeUnit.SECONDS, 1) ); + String url = "http://%s@localhost:%s/docs/csv".formatted(userPass, PORT); testResult(db, "CALL apoc.load.csvParams($url, $header, $payload, {results:['map','list','stringMap','strings']})", - map("url", "http://" + userPass + "@localhost:1080/docs/csv", + map("url", url, "header", map("method", "POST"), "payload", "{\"query\":\"pagecache\",\"version\":\"3.5\"}"), (row) -> assertEquals(RESPONSE_BODY, row.stream().map(i->i.get("map")).collect(Collectors.toList())) @@ -549,7 +553,7 @@ public void testLoadCsvParamsWithBasicAuth() throws JsonProcessingException { String userPass = "user:password"; String token = Util.encodeUserColonPassToBase64(userPass); - new MockServerClient("localhost", 1080) + new MockServerClient("localhost", PORT) .when( request() .withMethod("POST") @@ -568,7 +572,7 @@ public void testLoadCsvParamsWithBasicAuth() throws JsonProcessingException { ); testResult(db, "CALL apoc.load.csvParams($url, $header, $payload, {results:['map','list','stringMap','strings']})", - map("url", "http://localhost:1080/docs/csv", + map("url", "http://localhost:%s/docs/csv".formatted(PORT), "header", map("method", "POST", "Authorization", "Basic " + token, "Content-Type", "application/json"), diff --git a/extended/src/test/java/apoc/ml/WatsonTest.java b/extended/src/test/java/apoc/ml/WatsonTest.java index 111e0188d8..82ffdb05cb 100644 --- a/extended/src/test/java/apoc/ml/WatsonTest.java +++ b/extended/src/test/java/apoc/ml/WatsonTest.java @@ -9,6 +9,7 @@ import org.junit.Test; import org.mockserver.integration.ClientAndServer; import org.mockserver.model.Header; +import org.mockserver.socket.PortFactory; import org.neo4j.test.rule.DbmsRule; import org.neo4j.test.rule.ImpermanentDbmsRule; @@ -33,6 +34,7 @@ public class WatsonTest { + private static final int PORT = PortFactory.findFreePort(); private static ClientAndServer mockServer; @ClassRule @@ -45,14 +47,15 @@ public static void startServer() throws Exception { TestUtil.registerProcedure(db, Watson.class); String path = "/generation/text"; - apocConfig().setProperty(APOC_ML_WATSON_URL, "http://localhost:1080" + path); + apocConfig().setProperty(APOC_ML_WATSON_URL, "http://localhost:" + PORT + path); apocConfig().setProperty(APOC_IMPORT_FILE_ENABLED, true); apocConfig().setProperty(APOC_ML_WATSON_PROJECT_ID, "fakeProjectId"); File urlFileName = new File(getUrlFileName("watson.json").getFile()); String body = FileUtils.readFileToString(urlFileName, UTF_8); - mockServer = startClientAndServer(1080); + + mockServer = startClientAndServer(PORT); mockServer.when( request() .withMethod("POST")