diff --git a/provider/notification-azure/pom.xml b/provider/notification-azure/pom.xml index 4ca797d3adda592dbbe950842de83c62f1fb426d..a8dcbd6511f24cc026b7e06c0478050fd5addfe4 100644 --- a/provider/notification-azure/pom.xml +++ b/provider/notification-azure/pom.xml @@ -215,6 +215,7 @@ <version>${jacoco-maven-plugin.version}</version> <executions> <execution> + <id>default-prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/di/ServiceAccountJwtClientFactoryTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/di/ServiceAccountJwtClientFactoryTest.java index ad50951406d501ecd89b1222aa4cf62081893821..883a607692e74a3c5d33769f04ba5566d391ddc4 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/di/ServiceAccountJwtClientFactoryTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/di/ServiceAccountJwtClientFactoryTest.java @@ -17,7 +17,9 @@ package org.opengroup.osdu.notification.di; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; +import org.mockito.junit.MockitoJUnitRunner; import org.opengroup.osdu.core.common.util.IServiceAccountJwtClient; import org.opengroup.osdu.notification.provider.azure.di.ServiceAccountJwtClientFactory; import org.opengroup.osdu.notification.provider.azure.util.ServiceAccountJwtAzureClientImpl; @@ -25,6 +27,7 @@ import org.opengroup.osdu.notification.provider.azure.util.ServiceAccountJwtAzur import static org.junit.Assert.fail; import static org.mockito.MockitoAnnotations.initMocks; +@RunWith(MockitoJUnitRunner.class) public class ServiceAccountJwtClientFactoryTest { @InjectMocks diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/di/SubscriptionFactoryAzureTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/di/SubscriptionFactoryAzureTest.java index 7b81af533f8c16680da3ec1311111325e6e489ad..1213049428dcc3d10e2c26493de80cfd6cd0d41e 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/di/SubscriptionFactoryAzureTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/di/SubscriptionFactoryAzureTest.java @@ -2,11 +2,14 @@ package org.opengroup.osdu.notification.di; import org.junit.Assert; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.notification.ISubscriptionService; import org.opengroup.osdu.core.common.notification.SubscriptionAPIConfig; import org.opengroup.osdu.notification.provider.azure.di.SubscriptionFactoryAzure; +@RunWith(MockitoJUnitRunner.class) public class SubscriptionFactoryAzureTest { @Test diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/MessageHandlerTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/MessageHandlerTest.java index c5ee287a6ff5158a0cc704a5f22ea5156e50c184..62579f4323a801d2230e318628ffd13e223ae507 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/MessageHandlerTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/MessageHandlerTest.java @@ -16,11 +16,12 @@ package org.opengroup.osdu.notification.messageBus; import com.microsoft.azure.servicebus.Message; import com.microsoft.azure.servicebus.SubscriptionClient; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.jupiter.MockitoExtension; import org.opengroup.osdu.notification.provider.azure.messageBus.MessageHandler; import org.opengroup.osdu.notification.provider.azure.messageBus.ProcessNotification; @@ -29,7 +30,7 @@ import java.util.UUID; import static org.mockito.Mockito.*; -@ExtendWith(MockitoExtension.class) +@RunWith(MockitoJUnitRunner.class) public class MessageHandlerTest { private static final UUID uuid = UUID.randomUUID(); @@ -47,7 +48,7 @@ public class MessageHandlerTest { @Mock private Message message; - @BeforeEach + @Before public void init() { when(message.getLockToken()).thenReturn(uuid); when(subscriptionClient.getSubscriptionName()).thenReturn(subscriptionName); diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/ProcessNotificationTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/ProcessNotificationTest.java index 927672d6d6d69985f3c459cb9557467d81a579c2..789d76697846e64a8bd3b334b258903cc2ed8378 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/ProcessNotificationTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/ProcessNotificationTest.java @@ -16,12 +16,13 @@ package org.opengroup.osdu.notification.messageBus; import com.microsoft.azure.servicebus.Message; import org.junit.Assert; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.jupiter.MockitoExtension; import org.opengroup.osdu.core.common.http.HttpResponse; import org.opengroup.osdu.core.common.model.http.DpsHeaders; @@ -38,7 +39,7 @@ import java.util.Map; import static org.junit.Assert.fail; import static org.mockito.Mockito.*; -@ExtendWith(MockitoExtension.class) +@RunWith(MockitoJUnitRunner.class) public class ProcessNotificationTest { private static final String dataPartitionId = "opendes"; private static final String correlationId = "908fcf8d-30c5-4c74-a0ae-ab47b48b7a85"; @@ -65,7 +66,7 @@ public class ProcessNotificationTest { @Spy private ThreadDpsHeaders dpsHeaders; - @BeforeEach + @Before public void init() { requestAttributes.put(DpsHeaders.DATA_PARTITION_ID, dataPartitionId); requestAttributes.put(DpsHeaders.CORRELATION_ID, correlationId); diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/SubscriptionClientFactoryTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/SubscriptionClientFactoryTest.java index dee2f7f0e5151cbabf538460eb1281d77e46e7a2..0a17630f98ae2e675ad81cab0a338efcfb51b0bc 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/SubscriptionClientFactoryTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/SubscriptionClientFactoryTest.java @@ -17,10 +17,11 @@ package org.opengroup.osdu.notification.messageBus; import com.microsoft.azure.servicebus.SubscriptionClient; import com.microsoft.azure.servicebus.primitives.ServiceBusException; import org.junit.Assert; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.jupiter.MockitoExtension; import org.opengroup.osdu.azure.servicebus.ISubscriptionClientFactory; import org.opengroup.osdu.notification.provider.azure.messageBus.SubscriptionClientFactImpl; @@ -30,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.Mockito.when; -@ExtendWith(MockitoExtension.class) +@RunWith(MockitoJUnitRunner.class) public class SubscriptionClientFactoryTest { @InjectMocks private SubscriptionClientFactImpl subsClientFactory; @@ -65,7 +66,6 @@ public class SubscriptionClientFactoryTest { fail(EXCEPTION_NOT_THROWN); } catch (Exception e) { Assert.assertNotNull(e); - Assert.assertEquals( SERVICE_BUS_EXCEPTION, e.getMessage()); } } } diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/SubscriptionManagerImplTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/SubscriptionManagerImplTest.java index c1f6216898b1f660f7d8846322537ac83bcd35fc..86296de13d6710f56a214396292d64a87a9fef52 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/SubscriptionManagerImplTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/messageBus/SubscriptionManagerImplTest.java @@ -15,15 +15,18 @@ package org.opengroup.osdu.notification.messageBus; import com.microsoft.azure.servicebus.SubscriptionClient; +import com.microsoft.azure.servicebus.management.ManagementClient; import com.microsoft.azure.servicebus.primitives.ServiceBusException; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; import org.opengroup.osdu.azure.cosmosdb.CosmosStore; import org.opengroup.osdu.azure.partition.PartitionServiceClient; +import org.opengroup.osdu.azure.serviceBusManager.IManagementClientFactory; import org.opengroup.osdu.core.common.model.notification.HmacSecret; import org.opengroup.osdu.core.common.model.notification.Subscription; import org.opengroup.osdu.core.common.model.tenant.TenantInfo; @@ -32,9 +35,10 @@ import org.opengroup.osdu.core.common.provider.interfaces.ITenantFactory; import org.opengroup.osdu.notification.provider.azure.messageBus.ProcessNotification; import org.opengroup.osdu.notification.provider.azure.messageBus.SubscriptionClientFactImpl; import org.opengroup.osdu.notification.provider.azure.messageBus.SubscriptionManagerImpl; +import org.opengroup.osdu.notification.provider.azure.messageBus.models.TopicSubscriptions; import org.opengroup.osdu.notification.provider.azure.messageBus.thread.ThreadDpsHeaders; -import org.opengroup.osdu.notification.provider.azure.util.AzureServiceBusConfig; import org.opengroup.osdu.notification.provider.azure.util.AzureCosmosProperties; +import org.opengroup.osdu.notification.provider.azure.util.AzureServiceBusConfig; import java.util.Collections; import java.util.concurrent.Executors; @@ -42,9 +46,16 @@ import java.util.concurrent.TimeUnit; import static java.lang.Thread.sleep; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; - -@ExtendWith(MockitoExtension.class) +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.lenient; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) public class SubscriptionManagerImplTest { private static final String maxLockRenewDuration = "60"; @@ -57,6 +68,8 @@ public class SubscriptionManagerImplTest { @Mock private SubscriptionClientFactImpl subscriptionClientFactory; @Mock + private TopicSubscriptions topicSubscriptions; + @Mock private SubscriptionClient subscriptionClient; @Mock private ProcessNotification processNotification; @@ -69,6 +82,10 @@ public class SubscriptionManagerImplTest { @Mock private PartitionServiceClient partitionService; @Mock + private IManagementClientFactory factory; + @Mock + private ManagementClient managementClient; + @Mock private CosmosStore cosmosStore; @Mock private AzureCosmosProperties azureCosmosProperties; @@ -83,8 +100,9 @@ public class SubscriptionManagerImplTest { private static final String initial_thread_delay = "0"; private static final String thread_delay = "1"; - @BeforeEach - public void init() { + @Before + public void init() throws ServiceBusException, InterruptedException { + MockitoAnnotations.openMocks(SubscriptionManagerImplTest.this); TenantInfo tenantInfo = new TenantInfo(); tenantInfo.setDataPartitionId(dataPartition); lenient().when(azureServiceBusConfig.getMaxConcurrentCalls()).thenReturn(maxConcurrentCalls); @@ -95,6 +113,9 @@ public class SubscriptionManagerImplTest { lenient().when(azureCosmosProperties.registerSubscriptionContainerName()).thenReturn(registerContainerName); lenient().when(azureCosmosProperties.cosmosDBName()).thenReturn(cosmosDbName); lenient().when(tenantFactory.listTenantInfo()).thenReturn(Collections.singletonList(tenantInfo)); + lenient().when(factory.getManager(anyString())).thenReturn(managementClient); + lenient().when(managementClient.topicExists(anyString())).thenReturn(true, false); + lenient().when(managementClient.subscriptionExists(anyString(), anyString())).thenReturn(true, false); lenient().when(cosmosStore.findAllItems(dataPartition, cosmosDbName, registerContainerName, Subscription.class)). thenReturn(Collections.singletonList(getHmac_subscription())); } @@ -102,23 +123,17 @@ public class SubscriptionManagerImplTest { @Test public void shouldSuccessfullyRegisterMessageHandler() throws ServiceBusException, InterruptedException { - when(subscriptionClientFactory.getSubscriptionClient(dataPartition, sbTopic, sbSubscription)).thenReturn(subscriptionClient); - doNothing().when(subscriptionClient).registerMessageHandler(any(), any(), any()); subscriptionManager.subscribeNotificationsEvent(); - verify(azureServiceBusConfig, times(1)).getMaxConcurrentCalls(); verify(azureServiceBusConfig, times(1)).getNThreads(); - verify(azureServiceBusConfig, times(1)).getMaxLockRenewDurationInSeconds(); verify(azureCosmosProperties, times(1)).registerSubscriptionContainerName(); verify(azureCosmosProperties, times(1)).cosmosDBName(); - verify(subscriptionClientFactory, times(1)).getSubscriptionClient(dataPartition, sbTopic, sbSubscription); - verify(subscriptionClient, times(1)).registerMessageHandler(any(), any(), any()); - } @Test public void shouldNotRegisterMessageHandlerWhenAlreadyRegisteredInPrevThread() throws ServiceBusException, InterruptedException { + when(topicSubscriptions.checkIfNewTopicSubscription(anyString(), anyString(), anyString())).thenReturn(true); when(subscriptionClientFactory.getSubscriptionClient(dataPartition, sbTopic, sbSubscription)).thenReturn(subscriptionClient); doNothing().when(subscriptionClient).registerMessageHandler(any(), any(), any()); Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(subscriptionManager, Integer.parseUnsignedInt(azureServiceBusConfig.getInitialSubscriptionManagerDelay()), @@ -136,6 +151,7 @@ public class SubscriptionManagerImplTest { @Test public void shouldNotRegisterMessageHandlerIfSSubscriptionClientThrowsException() throws ServiceBusException, InterruptedException { + lenient().when(topicSubscriptions.checkIfNewTopicSubscription(anyString(), anyString(), anyString())).thenReturn(true); lenient().doNothing().when(subscriptionClient).registerMessageHandler(any(), any(), any()); doThrow(new InterruptedException(errorMessage)).when(subscriptionClientFactory).getSubscriptionClient(dataPartition, sbTopic, sbSubscription); subscriptionManager.subscribeNotificationsEvent(); @@ -152,6 +168,7 @@ public class SubscriptionManagerImplTest { @Test public void shouldThrowExceptionIfErrorWhileRegisteringMessageHandler() throws ServiceBusException, InterruptedException { + lenient().when(topicSubscriptions.checkIfNewTopicSubscription(anyString(), anyString(), anyString())).thenReturn(true); doThrow(new InterruptedException(errorMessage)).when(subscriptionClient).registerMessageHandler(any(), any(), any()); when(subscriptionClientFactory.getSubscriptionClient(dataPartition, sbTopic, sbSubscription)).thenReturn(subscriptionClient); subscriptionManager.subscribeNotificationsEvent(); diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/extractor/RequestBodyAdapterTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/extractor/RequestBodyAdapterTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ee394890ebde6b65755b940aa61ee63e52fb014e --- /dev/null +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/extractor/RequestBodyAdapterTest.java @@ -0,0 +1,41 @@ +package org.opengroup.osdu.notification.provider.azure.messageBus.extractor; + + +import com.microsoft.azure.servicebus.IMessage; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; +import org.opengroup.osdu.notification.provider.azure.messageBus.interfaces.IPullRequestBodyExtractor; +import org.opengroup.osdu.notification.provider.azure.messageBus.models.TopicSubscriptionsTest; +import org.opengroup.osdu.notification.provider.azure.models.NotificationContent; + +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@RunWith(MockitoJUnitRunner.class) +public class RequestBodyAdapterTest { + + @InjectMocks + RequestBodyAdapter requestBodyAdapter; + + @Mock + IPullRequestBodyExtractor extractor; + + @Mock + IMessage message; + + @Before + public void setup() { + MockitoAnnotations.openMocks(RequestBodyAdapterTest.this); + } + + @Test + public void extractNotificationContentTest() { + + NotificationContent actual = requestBodyAdapter.extractNotificationContent(message,"recordsTopic"); + assertNotNull(actual); + } +} diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/models/TopicSubscriptionsTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/models/TopicSubscriptionsTest.java new file mode 100644 index 0000000000000000000000000000000000000000..17336d1fcaf5388eba3d3c740b3573adad341506 --- /dev/null +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/models/TopicSubscriptionsTest.java @@ -0,0 +1,54 @@ +package org.opengroup.osdu.notification.provider.azure.messageBus.models; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; +import org.opengroup.osdu.notification.provider.azure.messageBus.thread.ThreadScope; +import org.opengroup.osdu.notification.provider.azure.messageBus.thread.ThreadScopeTest; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.doNothing; + +@RunWith(MockitoJUnitRunner.class) +public class TopicSubscriptionsTest { + + private static String PARTITION = "opendes"; + private static String SBTOPICNAME = "recordsTopic"; + private static String SUBSCRIPTION = "test123asjdk"; + + private Map<String, Map<String, List<String>>> existingTopicSubscriptions = new HashMap<>(); + private Map<String, Map<String, List<String>>> currentTopicSubscriptions = new HashMap<>(); + + @InjectMocks + TopicSubscriptions topicSubscriptions; + + + @Before + public void setup() { + MockitoAnnotations.openMocks(TopicSubscriptionsTest.this); + } + + @Test + public void checkIfNewTopicSubscriptionTest(){ + boolean actual = topicSubscriptions.checkIfNewTopicSubscription(PARTITION,SBTOPICNAME,SUBSCRIPTION); + assertEquals(actual,true); + } + + @Test + public void updateCurrentTopicSubscriptionsTest(){ + topicSubscriptions.updateCurrentTopicSubscriptions(PARTITION,SBTOPICNAME,SUBSCRIPTION); + + } + + @Test + public void clearTopicSubscriptionsTest(){ + topicSubscriptions.clearTopicSubscriptions(); + } +} diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadDpsHeadersTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadDpsHeadersTest.java new file mode 100644 index 0000000000000000000000000000000000000000..3eb6988e1958004e01692bdec456d3f48109b079 --- /dev/null +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadDpsHeadersTest.java @@ -0,0 +1,30 @@ +package org.opengroup.osdu.notification.provider.azure.messageBus.thread; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; +import org.opengroup.osdu.core.common.util.IServiceAccountJwtClient; + +@RunWith(MockitoJUnitRunner.class) +public class ThreadDpsHeadersTest { + @InjectMocks + ThreadDpsHeaders threadDpsHeaders; + + @Mock + IServiceAccountJwtClient serviceAccountJwtClient; + + @Before + public void setup() { + MockitoAnnotations.openMocks(ThreadDpsHeadersTest.this); + } + + @Test + public void setThreadContextTest(){ + threadDpsHeaders.setThreadContext("opendes","ut"); + } + +} diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadScopeTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadScopeTest.java new file mode 100644 index 0000000000000000000000000000000000000000..75a3faa0bd47f87a73a1f492eff0856a0d5a9d54 --- /dev/null +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadScopeTest.java @@ -0,0 +1,65 @@ +package org.opengroup.osdu.notification.provider.azure.messageBus.thread; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.springframework.beans.factory.ObjectFactory; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class ThreadScopeTest { + private static final String NAME = "name"; + + @InjectMocks + ThreadScope threadScope; + @Mock + ObjectFactory<Object> factory; + @Mock + DpsHeaders dpsHeaders; + @Mock + MockHttpServletRequest request; + @Mock + ThreadScopeContext context; + @Mock + ThreadDpsHeaders threadDpsHeaders; + + @Before + public void setup() { + MockitoAnnotations.openMocks(ThreadScopeTest.this); + } + + @Test + public void getTest_shouldGetObject() { + when(factory.getObject()).thenReturn(new Object()); + Object actual = threadScope.get(NAME, factory); + assertNotNull(actual); + } + + @Test + public void removeTest_shouldReturnRemovedObject(){ + threadScope.get(NAME,factory); + threadScope.registerDestructionCallback(NAME, () -> {}); + Object actual = threadScope.remove(NAME); + assertNull(actual); + } + +} + diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadSignatureServiceTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadSignatureServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f228982187f583a9a72660bf976110200c2492f0 --- /dev/null +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadSignatureServiceTest.java @@ -0,0 +1,73 @@ +package org.opengroup.osdu.notification.provider.azure.messageBus.thread; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; +import org.opengroup.osdu.core.common.cryptographic.HmacData; +import org.opengroup.osdu.core.common.cryptographic.SignatureServiceException; + +import java.util.Base64; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@RunWith(MockitoJUnitRunner.class) +public class ThreadSignatureServiceTest { + + private static final String URL = "http://www.osdu.example.com/signature"; + private static final String SECRET = "93491ab4453ef0306bf08f3703460950"; + + @InjectMocks + private ThreadSignatureService threadSignatureService; + + @Before + public void setUp() { + MockitoAnnotations.openMocks(ThreadSignatureServiceTest.this); + } + + @Test + public void getSignedSignatureTest() throws SignatureServiceException { + String actual = threadSignatureService.getSignedSignature(URL, SECRET); + assertNotNull(actual); + } + + @Test + public void getSignedSignatureTest_withExpiryTimeAndNonce() throws SignatureServiceException { + String actual = threadSignatureService.getSignedSignature(URL,SECRET,String.valueOf(System.currentTimeMillis()+120000),SECRET); + assertNotNull(actual); + } + + @Test(expected = SignatureServiceException.class) + public void getSignedSignatureTest_withExpiryTimeAndNonce_signatureServiceException() throws SignatureServiceException { + threadSignatureService.getSignedSignature(URL,"",String.valueOf(System.currentTimeMillis()+120000),SECRET); + } + + @Test + public void verifyHmacSignature() throws SignatureServiceException { + String expireTime = String.valueOf(System.currentTimeMillis() + 120000L); + + HmacData hmacData = new HmacData(); + hmacData.setExpireMillisecond(expireTime); + hmacData.setNonce(SECRET); + hmacData.setEndpointUrl(URL); + String signature = threadSignatureService.getSignedSignature(URL, SECRET, expireTime, SECRET); + assertDoesNotThrow(() -> + threadSignatureService.verifyHmacSignature( + String.format("%s.%s", Base64.getEncoder().encodeToString(new ObjectMapper().writeValueAsBytes(hmacData)), signature), SECRET) + ); + } + + @Test(expected = SignatureServiceException.class) + public void verifyHmacSignature_whenHmacIsNullOrEmpty_thenThrowSignatureServiceException() throws SignatureServiceException { + threadSignatureService.verifyHmacSignature("", SECRET); + } + + @Test(expected = SignatureServiceException.class) + public void verifyHmacSignature_whenSecretIsNullOrEmpty_thenThrowSignatureServiceException() throws SignatureServiceException { + threadSignatureService.verifyHmacSignature(URL, ""); + } +} \ No newline at end of file diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/util/MDCContextMapTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/util/MDCContextMapTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a0449810c6d928eaf3ea0ba96df115c4ff0c6352 --- /dev/null +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/util/MDCContextMapTest.java @@ -0,0 +1,23 @@ +package org.opengroup.osdu.notification.provider.azure.util; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.junit.MockitoJUnitRunner; + +import java.util.Map; + +import static org.junit.Assert.assertNotNull; + +@RunWith(MockitoJUnitRunner.class) +public class MDCContextMapTest { + + @InjectMocks + MDCContextMap mdcContextMap; + + @Test + public void getContextMapTest(){ + Map<String, String> contextMap = mdcContextMap.getContextMap("ut","opendes"); + assertNotNull(contextMap); + } +} diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/pubsub/EventGridHandshakeHandlerTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/pubsub/EventGridHandshakeHandlerTest.java index b1cac81ce1b3e57696690b4a3bf989b266f9afc4..ca0286c3d0a0af30b0a80000e485c8708bcc68bf 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/pubsub/EventGridHandshakeHandlerTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/pubsub/EventGridHandshakeHandlerTest.java @@ -13,7 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.opengroup.osdu.notification.provider.azure; +package org.opengroup.osdu.notification.pubsub; import org.junit.Assert; import org.junit.Test; diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/AppPropertiesTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/AppPropertiesTest.java index 578a36d1899921f1587f2af0d300f8bf8b6834fa..fcaa2bf66c272cedae0771925dbd177725b14abc 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/AppPropertiesTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/AppPropertiesTest.java @@ -18,8 +18,10 @@ import com.azure.security.keyvault.secrets.SecretClient; import com.azure.security.keyvault.secrets.models.KeyVaultSecret; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; import org.opengroup.osdu.notification.provider.azure.util.AppProperties; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -27,6 +29,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.Mockito.doReturn; import static org.mockito.MockitoAnnotations.initMocks; +@RunWith(MockitoJUnitRunner.class) public class AppPropertiesTest { @InjectMocks diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/AzureServiceAccountValidatorImplTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/AzureServiceAccountValidatorImplTest.java index 2124bff88a50d6fcceb7814729277e57bfb09e0f..779abce852c592198b58ef7f466c436ebcca370e 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/AzureServiceAccountValidatorImplTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/AzureServiceAccountValidatorImplTest.java @@ -19,9 +19,11 @@ import com.auth0.jwt.algorithms.Algorithm; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; import org.opengroup.osdu.notification.provider.azure.util.AppProperties; import org.opengroup.osdu.notification.provider.azure.util.AzureServiceAccountValidatorImpl; @@ -30,6 +32,7 @@ import java.io.UnsupportedEncodingException; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; +@RunWith(MockitoJUnitRunner.class) public class AzureServiceAccountValidatorImplTest { private static String eventGridId = "eventgridid"; diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/GoogleServiceAccountImpTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/GoogleServiceAccountImpTest.java index 00996ddc1fda3d387c264013be80716ebc15eba4..a643fb4c4d83e2f268bcdb3ba66e419bcf1c97d6 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/GoogleServiceAccountImpTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/GoogleServiceAccountImpTest.java @@ -16,11 +16,14 @@ package org.opengroup.osdu.notification.util; import org.junit.Test; import org.junit.jupiter.api.Assertions; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; import org.opengroup.osdu.notification.provider.azure.util.GoogleServiceAccountImpl; import sun.reflect.generics.reflectiveObjects.NotImplementedException; import static org.junit.Assert.fail; +@RunWith(MockitoJUnitRunner.class) public class GoogleServiceAccountImpTest { @Test diff --git a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/ServiceAccountClientImplTest.java b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/ServiceAccountClientImplTest.java index 59fbfb854e7e3bca9ea106a1706b387890f74e1b..329b271ab0e2fed22dce1222100b6b32d04c7df1 100644 --- a/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/ServiceAccountClientImplTest.java +++ b/provider/notification-azure/src/test/java/org/opengroup/osdu/notification/util/ServiceAccountClientImplTest.java @@ -14,10 +14,12 @@ package org.opengroup.osdu.notification.util; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + +import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.jupiter.MockitoExtension; import org.omg.CORBA.portable.ApplicationException; import org.opengroup.osdu.azure.util.AzureServicePrincipleTokenService; @@ -30,7 +32,7 @@ import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; import static org.mockito.Mockito.times; -@ExtendWith(MockitoExtension.class) +@RunWith(MockitoJUnitRunner.class) public class ServiceAccountClientImplTest { private static final String tenantId = "tenantId";