]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
android: Replace PowerMock with mechanism provided by newer Mockito versions
authorTobias Brunner <tobias@strongswan.org>
Tue, 12 Dec 2023 18:41:47 +0000 (19:41 +0100)
committerTobias Brunner <tobias@strongswan.org>
Tue, 16 Jan 2024 10:00:29 +0000 (11:00 +0100)
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.

src/frontends/android/app/build.gradle
src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeSetTest.java
src/frontends/android/app/src/test/java/org/strongswan/android/test/IPRangeTest.java

index 35ecdcbb9d0390a8177aef9be159d0dfcfa84a47..7aa4d84547abef38d634fd508289c45aa391c7b0 100644 (file)
@@ -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'
 }
index e91a7398e1422d17e83e7e766e6dcdcb20fc3ea6..932b6c4133c944a9c7ff03390a8b309eb7a7baf3 100644 (file)
 
 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<Utils> 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)
index a915d96ea50c29d1c958dba2cb8560dd8f2d8702..af8a13af08c82291d5dd0a45ac8e47b1ebc39543 100644 (file)
 
 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<Utils> 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