From c7684c64747e3648395b0fa45672f64bcd4683ee Mon Sep 17 00:00:00 2001 From: SmithaManjunath <smanjunath@microsoft.com> Date: Tue, 15 Mar 2022 19:12:36 +0530 Subject: [PATCH] increase code coverage to 80% --- provider/notification-azure/pom.xml | 1 + .../ServiceAccountJwtClientFactoryTest.java | 3 + .../di/SubscriptionFactoryAzureTest.java | 3 + .../messageBus/MessageHandlerTest.java | 11 +-- .../messageBus/ProcessNotificationTest.java | 11 +-- .../SubscriptionClientFactoryTest.java | 8 +- .../SubscriptionManagerImplTest.java | 51 ++++++++----- .../extractor/RequestBodyAdapterTest.java | 41 +++++++++++ .../models/TopicSubscriptionsTest.java | 54 ++++++++++++++ .../thread/ThreadDpsHeadersTest.java | 30 ++++++++ .../messageBus/thread/ThreadScopeTest.java | 65 +++++++++++++++++ .../thread/ThreadSignatureServiceTest.java | 73 +++++++++++++++++++ .../azure/util/MDCContextMapTest.java | 23 ++++++ .../pubsub/EventGridHandshakeHandlerTest.java | 2 +- .../notification/util/AppPropertiesTest.java | 3 + .../AzureServiceAccountValidatorImplTest.java | 3 + .../util/GoogleServiceAccountImpTest.java | 3 + .../util/ServiceAccountClientImplTest.java | 8 +- 18 files changed, 358 insertions(+), 35 deletions(-) create mode 100644 provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/extractor/RequestBodyAdapterTest.java create mode 100644 provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/models/TopicSubscriptionsTest.java create mode 100644 provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadDpsHeadersTest.java create mode 100644 provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadScopeTest.java create mode 100644 provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/messageBus/thread/ThreadSignatureServiceTest.java create mode 100644 provider/notification-azure/src/test/java/org/opengroup/osdu/notification/provider/azure/util/MDCContextMapTest.java diff --git a/provider/notification-azure/pom.xml b/provider/notification-azure/pom.xml index 4ca797d3a..a8dcbd651 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 ad5095140..883a60769 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 7b81af533..121304942 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 c5ee287a6..62579f432 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 927672d6d..789d76697 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 dee2f7f0e..0a17630f9 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 c1f621689..86296de13 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 000000000..ee394890e --- /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 000000000..17336d1fc --- /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 000000000..3eb6988e1 --- /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 000000000..75a3faa0b --- /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 000000000..f22898218 --- /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 000000000..a0449810c --- /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 b1cac81ce..ca0286c3d 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 578a36d18..fcaa2bf66 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 2124bff88..779abce85 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 00996ddc1..a643fb4c4 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 59fbfb854..329b271ab 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"; -- GitLab