From a6567f3cc591074af1a0bfbea5b17024ce6eb24e Mon Sep 17 00:00:00 2001 From: Paula Oliveira <73945852+paulazomig@users.noreply.github.com> Date: Mon, 31 Jan 2022 11:02:48 -0300 Subject: [PATCH] Fix internet dependent test from 'UriUtilsParametrizedTest' class (#5905) Co-authored-by: Paula Zomignani Oliveira --- .../cloud/utils/UriUtilsParametrizedTest.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/utils/src/test/java/com/cloud/utils/UriUtilsParametrizedTest.java b/utils/src/test/java/com/cloud/utils/UriUtilsParametrizedTest.java index 6f104f4f98e..68479f51d9f 100644 --- a/utils/src/test/java/com/cloud/utils/UriUtilsParametrizedTest.java +++ b/utils/src/test/java/com/cloud/utils/UriUtilsParametrizedTest.java @@ -19,6 +19,7 @@ package com.cloud.utils; +import java.net.InetAddress; import java.util.Collection; import java.util.LinkedList; import java.util.Set; @@ -30,10 +31,18 @@ import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import org.mockito.Mockito; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.modules.junit4.PowerMockRunnerDelegate; import com.google.common.collect.ImmutableSet; -@RunWith(Parameterized.class) +@RunWith(PowerMockRunner.class) +@PowerMockRunnerDelegate(Parameterized.class) +@PowerMockIgnore({"javax.xml.*", "org.apache.xerces.*", "org.xml.*", "org.w3c.*"}) public class UriUtilsParametrizedTest { @FunctionalInterface public interface ThrowingBlock { @@ -140,12 +149,29 @@ public class UriUtilsParametrizedTest { } @Test - public void validateUrl() { + @PrepareForTest({UriUtils.class}) + + public void validateUrl() throws Exception { + + InetAddress inetAddressMock = Mockito.mock(InetAddress.class); + + PowerMockito.mockStatic(InetAddress.class); + PowerMockito.when(InetAddress.getByName(Mockito.anyString())).thenReturn(inetAddressMock); + if (expectSuccess) { UriUtils.validateUrl(format, url); } else { assertThrows(() -> UriUtils.validateUrl(format, url), IllegalArgumentException.class); } + + PowerMockito.verifyStatic(InetAddress.class); + InetAddress.getByName(Mockito.anyString()); + + Mockito.verify(inetAddressMock).isAnyLocalAddress(); + Mockito.verify(inetAddressMock).isLinkLocalAddress(); + Mockito.verify(inetAddressMock).isLoopbackAddress(); + Mockito.verify(inetAddressMock).isMulticastAddress(); + } @Test