From 6af9710b566ebe70ddd53896ac64c4010704c11a Mon Sep 17 00:00:00 2001 From: Suban05 Date: Thu, 27 Feb 2025 14:48:08 +0500 Subject: [PATCH 1/5] #3941 `resolve`, tests that use `Farea` to integrations --- .../java/org/eolang/maven/ResolveMojoIT.java | 88 +++++++++++++++++++ .../org/eolang/maven/ResolveMojoTest.java | 35 -------- 2 files changed, 88 insertions(+), 35 deletions(-) create mode 100644 eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java b/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java new file mode 100644 index 0000000000..ec20b23b71 --- /dev/null +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java @@ -0,0 +1,88 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2016-2025 Objectionary.com + * SPDX-License-Identifier: MIT + */ +package org.eolang.maven; + +import com.jcabi.manifests.Manifests; +import com.yegor256.MayBeSlow; +import com.yegor256.Mktmp; +import com.yegor256.MktmpResolver; +import com.yegor256.WeAreOnline; +import com.yegor256.farea.Farea; +import java.io.IOException; +import java.nio.file.Path; +import org.hamcrest.MatcherAssert; +import org.hamcrest.Matchers; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +/** + * Integration tests for {@link ResolveMojo}. + * + * @since 0.52 + */ +@SuppressWarnings({"JTCOP.RuleAllTestsHaveProductionClass", "JTCOP.RuleNotContainsTestWord"}) +@ExtendWith({WeAreOnline.class, MktmpResolver.class, MayBeSlow.class}) +final class ResolveMojoIT { + @Test + void resolvesJarFile(@Mktmp final Path temp) throws IOException { + new Farea(temp).together( + f -> { + ResolveMojoIT.configureFarea(f); + f.exec("process-classes"); + MatcherAssert.assertThat( + "the jar file was resolved and unpacked", + f.files().file( + String.format( + "target/eo/%s/org.eolang/eo-runtime/-/0.39.0/org/eolang/Phi.class", + ResolveMojo.DIR + ) + ).exists(), + Matchers.is(true) + ); + } + ); + } + + @Test + void removesOldJarFile(@Mktmp final Path temp) throws IOException { + new Farea(temp).together( + f -> { + ResolveMojoIT.configureFarea(f); + f.exec("process-classes"); + f.dependencies() + .append("org.eolang", "eo-runtime", "0.40.0"); + f.exec("process-classes"); + MatcherAssert.assertThat( + "binary files from the old JAR were removed", + f.files().file( + String.format( + "target/eo/%s/org.eolang/eo-runtime/-/0.39.0", + ResolveMojo.DIR + ) + ).exists(), + Matchers.is(false) + ); + } + ); + } + + private static void configureFarea(final Farea farea) throws IOException { + farea.clean(); + farea.dependencies() + .append("org.eolang", "eo-runtime", "0.39.0"); + farea.build() + .plugins() + .append( + "org.eolang", + "eo-maven-plugin", + System.getProperty( + "eo.version", + Manifests.read("EO-Version") + ) + ) + .execution() + .goals("resolve"); + } +} diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoTest.java index af7a3d0427..7ee791531b 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoTest.java @@ -7,7 +7,6 @@ import com.yegor256.Mktmp; import com.yegor256.MktmpResolver; import com.yegor256.WeAreOnline; -import com.yegor256.farea.Farea; import java.io.IOException; import java.nio.file.Path; import java.util.Collections; @@ -41,40 +40,6 @@ final class ResolveMojoTest { */ private static final String JAR_NOT_EXIST = "The jar file must not exist, but it doesn't"; - @Test - void deletesOtherVersions(@Mktmp final Path temp) throws IOException { - new Farea(temp).together( - f -> { - f.clean(); - f.dependencies() - .append("org.eolang", "eo-runtime", "0.39.0"); - f.build() - .plugins() - .appendItself() - .execution() - .goals("resolve"); - f.exec("process-classes"); - MatcherAssert.assertThat( - "the jar file was resolved and unpacked", - f.files().file( - "target/eo/5-resolve/org.eolang/eo-runtime/-/0.39.0/org/eolang/Phi.class" - ).exists(), - Matchers.is(true) - ); - f.dependencies() - .append("org.eolang", "eo-runtime", "0.40.0"); - f.exec("process-classes"); - MatcherAssert.assertThat( - "binary files from the old JAR were removed", - f.files().file( - "target/eo/5-resolve/org.eolang/eo-runtime/-/0.39.0" - ).exists(), - Matchers.is(false) - ); - } - ); - } - @Test void resolvesWithSingleDependency(@Mktmp final Path temp) throws IOException { new FakeMaven(temp) From 08b04c1d4e8e5af17cd911430e542c8361c0981e Mon Sep 17 00:00:00 2001 From: Suban05 Date: Thu, 27 Feb 2025 14:57:03 +0500 Subject: [PATCH 2/5] #3941 fix codacy --- .codacy.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.codacy.yml b/.codacy.yml index 904c39402d..0c62baf9f8 100644 --- a/.codacy.yml +++ b/.codacy.yml @@ -6,5 +6,4 @@ # package name contains capital letter and such names are conventional. --- exclude_paths: - - "eo-maven-plugin/src/test/java/org/eolang/maven/ShakeMojoIT.java" - - "eo-maven-plugin/src/test/java/org/eolang/maven/SodgMojoIT.java" + - "eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java" From 9c95f2cbfdd37b404f85496e64d5cb9d9b6c591a Mon Sep 17 00:00:00 2001 From: Suban05 Date: Thu, 27 Feb 2025 15:08:16 +0500 Subject: [PATCH 3/5] use variables from `_specials` --- .../org/eolang/maven/shake/set-original-names.xsl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/eo-maven-plugin/src/main/resources/org/eolang/maven/shake/set-original-names.xsl b/eo-maven-plugin/src/main/resources/org/eolang/maven/shake/set-original-names.xsl index 85e94d2b2f..eacebf935f 100644 --- a/eo-maven-plugin/src/main/resources/org/eolang/maven/shake/set-original-names.xsl +++ b/eo-maven-plugin/src/main/resources/org/eolang/maven/shake/set-original-names.xsl @@ -10,6 +10,7 @@ of the object. --> + @@ -28,7 +29,7 @@ - φ + @@ -38,10 +39,10 @@ - ρ + - α + From 622d4f8107088cd610394fcf1c654d26fbeffb3b Mon Sep 17 00:00:00 2001 From: Suban05 Date: Thu, 27 Feb 2025 16:13:40 +0500 Subject: [PATCH 4/5] #3941 version as a variable --- .../java/org/eolang/maven/ResolveMojoIT.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java b/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java index ec20b23b71..7c0eb94a00 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java @@ -25,18 +25,25 @@ @SuppressWarnings({"JTCOP.RuleAllTestsHaveProductionClass", "JTCOP.RuleNotContainsTestWord"}) @ExtendWith({WeAreOnline.class, MktmpResolver.class, MayBeSlow.class}) final class ResolveMojoIT { + + /** + * The EO runtime version. + */ + private static final String VERSION = "0.39.0"; + @Test void resolvesJarFile(@Mktmp final Path temp) throws IOException { new Farea(temp).together( f -> { - ResolveMojoIT.configureFarea(f); + ResolveMojoIT.configureFarea(f, ResolveMojoIT.VERSION); f.exec("process-classes"); MatcherAssert.assertThat( "the jar file was resolved and unpacked", f.files().file( String.format( - "target/eo/%s/org.eolang/eo-runtime/-/0.39.0/org/eolang/Phi.class", - ResolveMojo.DIR + "target/eo/%s/org.eolang/eo-runtime/-/%s/org/eolang/Phi.class", + ResolveMojo.DIR, + ResolveMojoIT.VERSION ) ).exists(), Matchers.is(true) @@ -49,7 +56,7 @@ void resolvesJarFile(@Mktmp final Path temp) throws IOException { void removesOldJarFile(@Mktmp final Path temp) throws IOException { new Farea(temp).together( f -> { - ResolveMojoIT.configureFarea(f); + ResolveMojoIT.configureFarea(f, ResolveMojoIT.VERSION); f.exec("process-classes"); f.dependencies() .append("org.eolang", "eo-runtime", "0.40.0"); @@ -58,8 +65,9 @@ void removesOldJarFile(@Mktmp final Path temp) throws IOException { "binary files from the old JAR were removed", f.files().file( String.format( - "target/eo/%s/org.eolang/eo-runtime/-/0.39.0", - ResolveMojo.DIR + "target/eo/%s/org.eolang/eo-runtime/-/%s", + ResolveMojo.DIR, + ResolveMojoIT.VERSION ) ).exists(), Matchers.is(false) @@ -68,10 +76,10 @@ void removesOldJarFile(@Mktmp final Path temp) throws IOException { ); } - private static void configureFarea(final Farea farea) throws IOException { + private static void configureFarea(final Farea farea, final String version) throws IOException { farea.clean(); farea.dependencies() - .append("org.eolang", "eo-runtime", "0.39.0"); + .append("org.eolang", "eo-runtime", version); farea.build() .plugins() .append( From 5ac3374fd9a735cdeda886448a2fa95252cd186c Mon Sep 17 00:00:00 2001 From: Suban05 Date: Thu, 27 Feb 2025 17:28:16 +0500 Subject: [PATCH 5/5] bug(#3941) resolve mojo tests that use `Farea` to integrations --- .../test/java/org/eolang/maven/ResolveMojoIT.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java b/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java index 7c0eb94a00..a7e18f0816 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/ResolveMojoIT.java @@ -26,16 +26,12 @@ @ExtendWith({WeAreOnline.class, MktmpResolver.class, MayBeSlow.class}) final class ResolveMojoIT { - /** - * The EO runtime version. - */ - private static final String VERSION = "0.39.0"; - @Test void resolvesJarFile(@Mktmp final Path temp) throws IOException { + final String version = "0.39.0"; new Farea(temp).together( f -> { - ResolveMojoIT.configureFarea(f, ResolveMojoIT.VERSION); + ResolveMojoIT.configureFarea(f, version); f.exec("process-classes"); MatcherAssert.assertThat( "the jar file was resolved and unpacked", @@ -43,7 +39,7 @@ void resolvesJarFile(@Mktmp final Path temp) throws IOException { String.format( "target/eo/%s/org.eolang/eo-runtime/-/%s/org/eolang/Phi.class", ResolveMojo.DIR, - ResolveMojoIT.VERSION + version ) ).exists(), Matchers.is(true) @@ -54,9 +50,10 @@ void resolvesJarFile(@Mktmp final Path temp) throws IOException { @Test void removesOldJarFile(@Mktmp final Path temp) throws IOException { + final String version = "0.38.0"; new Farea(temp).together( f -> { - ResolveMojoIT.configureFarea(f, ResolveMojoIT.VERSION); + ResolveMojoIT.configureFarea(f, version); f.exec("process-classes"); f.dependencies() .append("org.eolang", "eo-runtime", "0.40.0"); @@ -67,7 +64,7 @@ void removesOldJarFile(@Mktmp final Path temp) throws IOException { String.format( "target/eo/%s/org.eolang/eo-runtime/-/%s", ResolveMojo.DIR, - ResolveMojoIT.VERSION + version ) ).exists(), Matchers.is(false)