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]