This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new adbd2fb83ab CAMEL-20367: Adds tests for file management via http in
dev mode (#15449)
adbd2fb83ab is described below
commit adbd2fb83ab255abc6df1895910a538d6a0de856
Author: Jakub Vrubel <[email protected]>
AuthorDate: Thu Sep 5 13:31:28 2024 +0200
CAMEL-20367: Adds tests for file management via http in dev mode (#15449)
---
.../apache/camel/dsl/jbang/it/DevModeITCase.java | 32 ++++++++++++++++++++++
.../dsl/jbang/it/support/JBangTestSupport.java | 24 ++++++++++++++++
2 files changed, 56 insertions(+)
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/DevModeITCase.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/DevModeITCase.java
index b33d5d84244..7679cf055cf 100644
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/DevModeITCase.java
+++
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/DevModeITCase.java
@@ -88,6 +88,38 @@ public class DevModeITCase extends JBangTestSupport {
checkLogContains("Hello Camel from Jenna");
}
+ @Test
+ public void testDeleteFileViaHttp() throws IOException {
+ copyResourceInDataFolder(TestResources.DIR_ROUTE);
+ executeBackground(String.format("run --dev --console --source-dir=%s",
mountPoint()));
+ checkLogContains("Hello world!");
+ execInHost(String.format(
+ "curl -X DELETE
http://localhost:%s/q/upload/FromDirectoryRoute.java",
+ containerService.getDevConsolePort()));
+ checkLogContains("FromDirectoryRoute.java does not exist");
+ }
+
+ @Test
+ public void testUploadFileViaHttp() throws IOException {
+ copyResourceInDataFolder(TestResources.DIR_ROUTE);
+ Files.createDirectory(Path.of(getDataFolder() + "/source-dir"));
+ Files.copy(Path.of(getDataFolder() + "/FromDirectoryRoute.java"),
+ Path.of(getDataFolder() +
"/source-dir/FromDirectoryRoute.java"));
+ executeBackground(String.format("run --dev --console
--source-dir=%s/source-dir", mountPoint()));
+ checkLogContains("Hello world!");
+ makeTheFileWriteable(String.format("%s/FromDirectoryRoute.java",
mountPoint()));
+ Path routeFile = Path.of(getDataFolder(), "FromDirectoryRoute.java");
+ Files.write(routeFile,
+ Files.readAllLines(routeFile).stream()
+ .map(line -> line.replace("Hello world!", "I have been
modified!"))
+ .collect(Collectors.toList()));
+ checkLogDoesNotContain("I have been modified!");
+ execInHost(String.format(
+ "curl -X PUT
http://localhost:%s/q/upload/FromDirectoryRoute.java --data-binary
\"@%s/FromDirectoryRoute.java\"",
+ containerService.getDevConsolePort(), getDataFolder()));
+ checkLogContains("I have been modified!");
+ }
+
private HttpResponse<String> getDevRequest(final String ctxUrl) {
try {
return httpClient.send(HttpRequest
diff --git
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
index 674dd47d7be..a8e9f435327 100644
---
a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
+++
b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/support/JBangTestSupport.java
@@ -185,6 +185,26 @@ public abstract class JBangTestSupport {
.contains(contains)));
}
+ protected void checkLogDoesNotContain(String route, String contains, int
waitForSeconds) {
+ Assertions.assertThatNoException().isThrownBy(() -> Awaitility.await()
+ .atMost(waitForSeconds, TimeUnit.SECONDS)
+ .untilAsserted(() -> Assertions.assertThat(getLogs(route))
+ .as("log does not contain " + contains)
+ .doesNotContain(contains)));
+ }
+
+ protected void checkLogDoesNotContain(String contains, int waitForSeconds)
{
+ checkLogDoesNotContain(null, contains, waitForSeconds);
+ }
+
+ protected void checkLogDoesNotContain(String route, String contains) {
+ checkLogDoesNotContain(route, contains, ASSERTION_WAIT_SECONDS);
+ }
+
+ protected void checkLogDoesNotContain(String contains) {
+ checkLogDoesNotContain(contains, ASSERTION_WAIT_SECONDS);
+ }
+
protected void checkLogContainsPattern(String contains) {
checkLogContainsPattern(contains, ASSERTION_WAIT_SECONDS);
}
@@ -256,6 +276,10 @@ public abstract class JBangTestSupport {
.atMost(Duration.ofMinutes(2))
.pollInterval(Duration.ofSeconds(1))
.until(() -> !process.isAlive());
+ if (process.exitValue() != 0) {
+ logger.error(String.valueOf(process.getErrorStream()));
+ logger.info(String.valueOf(process.getOutputStream()));
+ }
return new String(process.getInputStream().readAllBytes());
} catch (IOException e) {
throw new RuntimeException(e);