slawekjaranowski commented on code in PR #760:
URL: 
https://github.com/apache/maven-invoker-plugin/pull/760#discussion_r4130065641


##########
src/test/java/org/apache/maven/plugins/invoker/InvokerMojoTest.java:
##########
@@ -223,6 +229,100 @@ private MavenSession sessionWithUserProperties(Properties 
userProperties) {
         return session;
     }
 
+    @Test
+    void scriptTargetBytecodeParameterWinsOverCompilerProperties() throws 
Exception {
+        // given
+        MavenProject mavenProject = getMavenProject();
+        mavenProject.getProperties().setProperty("maven.compiler.release", 
"17");
+        mavenProject.getProperties().setProperty("maven.compiler.target", 
"11");
+        setVariableValueToObject(invokerMojo, "project", mavenProject);
+        setVariableValueToObject(invokerMojo, "session", newSession(new 
DefaultMavenExecutionRequest()));
+        setVariableValueToObject(invokerMojo, "scriptTargetBytecode", "8");
+
+        // when
+        String targetBytecode = 
invokeHandleScriptRunnerAndGetGroovyTargetBytecode();
+
+        // then
+        assertThat(targetBytecode).isEqualTo("8");
+    }
+
+    @Test
+    void scriptTargetBytecodeFallsBackToMavenCompilerReleaseBeforeTarget() 
throws Exception {
+        // given
+        MavenProject mavenProject = getMavenProject();
+        mavenProject.getProperties().setProperty("maven.compiler.release", 
"17");
+        mavenProject.getProperties().setProperty("maven.compiler.target", 
"11");
+        setVariableValueToObject(invokerMojo, "project", mavenProject);
+        setVariableValueToObject(invokerMojo, "session", newSession(new 
DefaultMavenExecutionRequest()));
+
+        // when
+        String targetBytecode = 
invokeHandleScriptRunnerAndGetGroovyTargetBytecode();
+
+        // then
+        assertThat(targetBytecode).isEqualTo("17");
+    }
+
+    @Test
+    void scriptTargetBytecodeFallsBackToMavenCompilerTargetProperty() throws 
Exception {
+        // given
+        MavenProject mavenProject = getMavenProject();
+        mavenProject.getProperties().setProperty("maven.compiler.target", 
"11");
+        setVariableValueToObject(invokerMojo, "project", mavenProject);
+        setVariableValueToObject(invokerMojo, "session", newSession(new 
DefaultMavenExecutionRequest()));
+
+        // when
+        String targetBytecode = 
invokeHandleScriptRunnerAndGetGroovyTargetBytecode();
+
+        // then
+        assertThat(targetBytecode).isEqualTo("11");
+    }
+
+    @Test
+    void scriptTargetBytecodeUserPropertyWinsOverProjectProperty() throws 
Exception {
+        // given
+        MavenProject mavenProject = getMavenProject();
+        mavenProject.getProperties().setProperty("maven.compiler.release", 
"17");
+        MavenExecutionRequest request = new DefaultMavenExecutionRequest();
+        request.getUserProperties().setProperty("maven.compiler.release", 
"21");
+        setVariableValueToObject(invokerMojo, "project", mavenProject);
+        setVariableValueToObject(invokerMojo, "session", newSession(request));
+
+        // when
+        String targetBytecode = 
invokeHandleScriptRunnerAndGetGroovyTargetBytecode();
+
+        // then: -Dmaven.compiler.release on the command line wins, as it does 
for the Compiler Plugin
+        assertThat(targetBytecode).isEqualTo("21");
+    }
+
+    @Test
+    void scriptTargetBytecodeIsUnsetWhenNeitherParameterNorPropertyIsPresent() 
throws Exception {
+        // given
+        MavenProject mavenProject = getMavenProject();
+        setVariableValueToObject(invokerMojo, "project", mavenProject);
+        setVariableValueToObject(invokerMojo, "session", newSession(new 
DefaultMavenExecutionRequest()));
+
+        // when
+        String targetBytecode = 
invokeHandleScriptRunnerAndGetGroovyTargetBytecode();
+
+        // then
+        assertThat(targetBytecode).isNull();
+    }
+
+    private static MavenSession newSession(MavenExecutionRequest request) {
+        return new MavenSession(null, (RepositorySystemSession) null, request, 
null);

Review Comment:
   as constructors in MavenSession are deprecated we can try to use a mockito 
to moc a session or add suppression for deprecated



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to