diff --git a/pom.xml b/pom.xml
index 4b18d4626..ebd707775 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,8 +57,8 @@
4.0.4
1.2.2
- 5.8.2
- 1.15.3
+ 5.9.2
+ 1.17.6
4.4.0
1.3
1.19.0
@@ -423,13 +423,30 @@
jakarta.servlet-api
${servlet.version}
-
org.junit.jupiter
junit-jupiter
${junit.version}
test
+
+ org.junit.platform
+ junit-platform-launcher
+ 1.9.1
+ test
+
+
+ org.testcontainers
+ testcontainers
+ ${testcontainers.version}
+ test
+
+
+ org.testcontainers
+ junit-jupiter
+ ${testcontainers.version}
+ test
+
org.mockito
mockito-core
diff --git a/src/test/java/org/gitlab4j/api/UserApiIntegrationTest.java b/src/test/java/org/gitlab4j/api/UserApiIntegrationTest.java
new file mode 100644
index 000000000..1e3bb8766
--- /dev/null
+++ b/src/test/java/org/gitlab4j/api/UserApiIntegrationTest.java
@@ -0,0 +1,19 @@
+package org.gitlab4j.api;
+
+import org.gitlab4j.test.GitLabContainer;
+import org.gitlab4j.test.GitLabInvocationContextProvider;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.api.extension.ExtendWith;
+
+@ExtendWith(GitLabInvocationContextProvider.class)
+class UserApiIntegrationTest {
+
+
+ @TestTemplate
+ void testName(GitLabContainer container) throws Exception {
+
+ System.out.println(container.version);
+
+ }
+
+}
diff --git a/src/test/java/org/gitlab4j/test/EnableForGitLabVersionAndSuperior.java b/src/test/java/org/gitlab4j/test/EnableForGitLabVersionAndSuperior.java
new file mode 100644
index 000000000..750e4fb88
--- /dev/null
+++ b/src/test/java/org/gitlab4j/test/EnableForGitLabVersionAndSuperior.java
@@ -0,0 +1,22 @@
+package org.gitlab4j.test;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.junit.jupiter.api.extension.ExtendWith;
+
+@Target({ ElementType.TYPE, ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@ExtendWith(EnableForGitLabVersionAndSuperiorCondition.class)
+public @interface EnableForGitLabVersionAndSuperior {
+
+ /**
+ * The minimal version on which this test will be executed.
+ */
+ String version() default "";
+
+}
diff --git a/src/test/java/org/gitlab4j/test/EnableForGitLabVersionAndSuperiorCondition.java b/src/test/java/org/gitlab4j/test/EnableForGitLabVersionAndSuperiorCondition.java
new file mode 100644
index 000000000..d18d1631e
--- /dev/null
+++ b/src/test/java/org/gitlab4j/test/EnableForGitLabVersionAndSuperiorCondition.java
@@ -0,0 +1,72 @@
+package org.gitlab4j.test;
+
+import java.lang.reflect.AnnotatedElement;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.junit.jupiter.api.extension.ConditionEvaluationResult;
+import org.junit.jupiter.api.extension.ExtensionConfigurationException;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.api.extension.InvocationInterceptor;
+import org.junit.jupiter.api.extension.ReflectiveInvocationContext;
+import org.junit.platform.commons.util.AnnotationUtils;
+import org.opentest4j.TestAbortedException;
+
+public class EnableForGitLabVersionAndSuperiorCondition implements InvocationInterceptor {
+
+ private static final ConditionEvaluationResult ENABLED = ConditionEvaluationResult
+ .enabled("@EnableForGitLabVersionAndSuperiorCondition is not present");
+
+ @Override
+ public void interceptTestTemplateMethod(Invocation invocation,
+ ReflectiveInvocationContext invocationContext, ExtensionContext extensionContext) throws Throwable {
+ Method testMethod = extensionContext.getRequiredTestMethod();
+ List