From e72e466e4239236104ca300cf29d40cd6291a05a Mon Sep 17 00:00:00 2001 From: Max Rydahl Andersen Date: Tue, 13 Aug 2024 09:57:42 +0200 Subject: [PATCH] test: add test for runkotlin --- itests/runkotlin.feature | 6 ++++++ itests/runkotlin.kt | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 itests/runkotlin.feature create mode 100644 itests/runkotlin.kt diff --git a/itests/runkotlin.feature b/itests/runkotlin.feature new file mode 100644 index 000000000..4f238ddfa --- /dev/null +++ b/itests/runkotlin.feature @@ -0,0 +1,6 @@ +Feature: run-kotlin + +Scenario: should not fail to run kotlin +* command('jbang runkotlin.kt') +* match out contains 'SUCCESS!' +* match exit == 0 diff --git a/itests/runkotlin.kt b/itests/runkotlin.kt new file mode 100644 index 000000000..024b8178d --- /dev/null +++ b/itests/runkotlin.kt @@ -0,0 +1,36 @@ +///usr/bin/env jbang "$0" "$@" ; exit $? + +//DEPS com.github.zafarkhaja:java-semver:0.9.0 +//DEPS com.fasterxml.jackson.core:jackson-databind:2.15.2 +//DEPS com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.2 + +import com.fasterxml.jackson.databind.JsonNode +import com.github.zafarkhaja.semver.Version +import com.fasterxml.jackson.databind.node.ObjectNode +import com.fasterxml.jackson.dataformat.xml.XmlMapper +import java.util.stream.StreamSupport +import java.util.Spliterators + +fun main() { +// props to Chris Dellaway for the pointer to this + val url = "https://oss.sonatype.org/content/repositories/snapshots/org/mongodb/mongodb-driver-sync/maven-metadata.xml" + val mapper = XmlMapper() + val min: String = System.getenv().getOrDefault("DRIVER_MIN", "5.0.0") + val driverMinimum = Version.valueOf(min) + var document = mapper.readTree(java.net.URL(url)) + val versions: JsonNode = document + .get("versioning") + .get("versions") + .get("version") + + val result = versions.elements() + .asSequence() + .map{ it.asText() } + .map { Version.valueOf(it) } + .filter { it.greaterThanOrEqualTo(driverMinimum) } + .sorted() + .toList() + + println(result.last()) + println("SUCCESS!") +}