From: Tobias Brunner Date: Tue, 12 Dec 2023 18:41:47 +0000 (+0100) Subject: android: Replace PowerMock with mechanism provided by newer Mockito versions X-Git-Tag: android-2.5.0~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=980491ebcd3cf4fbf294807dafe6a2a394e9838e;p=thirdparty%2Fstrongswan.git android: Replace PowerMock with mechanism provided by newer Mockito versions PowerMock isn't maintained anymore and causes issues with newer Java versions. We only used it to mock static methods, which Mockito now supports as well. Instead of using the try-with-resources construct, this uses a @Before and @After method so we don't have to change all the test methods. --- diff --git a/src/frontends/android/app/build.gradle b/src/frontends/android/app/build.gradle index 35ecdcbb9d..7aa4d84547 100644 --- a/src/frontends/android/app/build.gradle +++ b/src/frontends/android/app/build.gradle @@ -49,8 +49,5 @@ dependencies { implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.google.android.material:material:1.10.0' testImplementation 'junit:junit:4.13.2' - testImplementation 'org.mockito:mockito-core:3.11.2' - testImplementation 'org.powermock:powermock-core:2.0.9' - testImplementation 'org.powermock:powermock-module-junit4:2.0.9' - testImplementation 'org.powermock:powermock-api-mockito2:2.0.9' + testImplementation 'org.mockito:mockito-core:5.8.0' } diff --git a/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeSetTest.java b/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeSetTest.java index e91a7398e1..932b6c4133 100644 --- a/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeSetTest.java +++ b/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeSetTest.java @@ -16,13 +16,11 @@ package org.strongswan.android.test; +import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; +import org.mockito.MockedStatic; import org.mockito.Mockito; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import org.strongswan.android.utils.IPRange; import org.strongswan.android.utils.IPRangeSet; import org.strongswan.android.utils.Utils; @@ -36,15 +34,21 @@ import java.util.List; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.anyString; -@RunWith(PowerMockRunner.class) -@PrepareForTest({ Utils.class, IPRangeSet.class }) public class IPRangeSetTest { + MockedStatic mockedUtils; + @Before public void initUtils() throws UnknownHostException { - PowerMockito.mockStatic(Utils.class); - Mockito.when(Utils.parseInetAddress(anyString())).thenAnswer(invocation -> InetAddress.getByName(invocation.getArgument(0))); + mockedUtils = Mockito.mockStatic(Utils.class); + mockedUtils.when(() -> Utils.parseInetAddress(anyString())).thenAnswer(invocation -> InetAddress.getByName(invocation.getArgument(0))); + } + + @After + public void deinitUtils() + { + mockedUtils.close(); } private void assertSubnets(IPRangeSet set, IPRange...exp) diff --git a/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeTest.java b/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeTest.java index a915d96ea5..af8a13af08 100644 --- a/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeTest.java +++ b/src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeTest.java @@ -16,13 +16,11 @@ package org.strongswan.android.test; +import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; +import org.mockito.MockedStatic; import org.mockito.Mockito; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import org.strongswan.android.utils.IPRange; import org.strongswan.android.utils.Utils; @@ -33,15 +31,21 @@ import java.util.List; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.anyString; -@RunWith(PowerMockRunner.class) -@PrepareForTest({ Utils.class, IPRange.class }) public class IPRangeTest { + MockedStatic mockedUtils; + @Before public void initUtils() throws UnknownHostException { - PowerMockito.mockStatic(Utils.class); - Mockito.when(Utils.parseInetAddress(anyString())).thenAnswer(invocation -> InetAddress.getByName(invocation.getArgument(0))); + mockedUtils = Mockito.mockStatic(Utils.class); + mockedUtils.when(() -> Utils.parseInetAddress(anyString())).thenAnswer(invocation -> InetAddress.getByName(invocation.getArgument(0))); + } + + @After + public void deinitUtils() + { + mockedUtils.close(); } @Test