summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/destinationprovider/impl/MulticastDestinationTest.java67
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/NotificationPropagationManagerImplTest.java64
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/NotificationsServiceImplTest.java50
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/PropagationServiceImplTest.java96
4 files changed, 277 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/destinationprovider/impl/MulticastDestinationTest.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/destinationprovider/impl/MulticastDestinationTest.java
new file mode 100644
index 0000000000..a0dd00632e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/destinationprovider/impl/MulticastDestinationTest.java
@@ -0,0 +1,67 @@
+package org.openecomp.sdc.destinationprovider.impl;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.notification.services.SubscriptionService;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+
+/**
+ * @author avrahamg
+ * @since July 13, 2017
+ */
+public class MulticastDestinationTest {
+ @Mock
+ private SubscriptionService subscriptionServiceMock;
+
+ private final String excludedSubscriber = "excluded";
+ private Set<String> subscribers = new HashSet<>(Arrays.asList("a", "b", excludedSubscriber));
+ private MulticastDestination multicastDestination;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void shouldReturnAllSubscribersIfNoExcludedProvided() throws Exception {
+ doReturn(subscribers).when(subscriptionServiceMock).getSubscribers(any());
+ multicastDestination = new MulticastDestination("aa", subscriptionServiceMock);
+ assertEquals(subscribers.size(), multicastDestination.getSubscribers().size());
+ List<String> actualSubscribers = multicastDestination.getSubscribers();
+ assertTrue(actualSubscribers.containsAll(subscribers));
+ }
+
+ @Test
+ public void shouldReturnAllSubscribersExceptExcluded() throws Exception {
+ doReturn(subscribers).when(subscriptionServiceMock).getSubscribers(any());
+ multicastDestination =
+ new MulticastDestination("aa", subscriptionServiceMock, excludedSubscriber);
+ List<String> actualSubscribers = multicastDestination.getSubscribers();
+ assertNotEquals(this.subscribers.size(), actualSubscribers.size());
+ assertFalse(actualSubscribers.containsAll(subscribers));
+ assertFalse(actualSubscribers.contains(excludedSubscriber));
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void shouldThrowUnsupportedOperationExceptionWhenTryingToChangeSubscribersList() throws
+ Exception {
+ doReturn(subscribers).when(subscriptionServiceMock).getSubscribers(any());
+ multicastDestination =
+ new MulticastDestination("aa", subscriptionServiceMock, excludedSubscriber);
+ List<String> actualSubscribers = multicastDestination.getSubscribers();
+ actualSubscribers.add("sss");
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/NotificationPropagationManagerImplTest.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/NotificationPropagationManagerImplTest.java
new file mode 100644
index 0000000000..0eb2b6235c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/NotificationPropagationManagerImplTest.java
@@ -0,0 +1,64 @@
+package org.openecomp.sdc.notification.services.impl;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.InjectMocks;
+import org.mockito.Matchers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.openecomp.sdc.destinationprovider.DestinationProvider;
+import org.openecomp.sdc.destinationprovider.impl.MulticastDestination;
+import org.openecomp.sdc.destinationprovider.impl.UnicastDestination;
+import org.openecomp.sdc.notification.dtos.Event;
+import org.openecomp.sdc.notification.services.PropagationService;
+import org.openecomp.sdc.notification.services.SubscriptionService;
+
+import static org.mockito.Mockito.verify;
+
+
+/**
+ * @author avrahamg
+ * @since July 13, 2017
+ */
+public class NotificationPropagationManagerImplTest {
+ @Mock
+ private PropagationService propagationServiceMock;
+ @Mock
+ private SubscriptionService subscriptionServiceMock;
+ @Mock
+ private Event eventMock;
+ @Captor
+ private ArgumentCaptor<DestinationProvider> destinationProviderCaptor;
+
+ @Spy
+ @InjectMocks
+ private NotificationPropagationManagerImpl notificationPropagationManager;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void shouldCallPropagationServiceNotifyWithMulticastDestinationWhenNotifySubscribers()
+ throws Exception {
+ notificationPropagationManager.notifySubscribers(eventMock);
+ verify(propagationServiceMock).notify(Matchers.eq(eventMock), destinationProviderCaptor
+ .capture());
+ Assert.assertTrue(destinationProviderCaptor.getValue() instanceof MulticastDestination);
+
+ }
+
+ @Test
+ public void shouldCallPropagationServiceNotifyWithUnicastDestinationWhenDirectNotification()
+ throws Exception {
+ notificationPropagationManager.directNotification(eventMock, "aaa");
+ verify(propagationServiceMock).notify(Matchers.eq(eventMock), destinationProviderCaptor
+ .capture());
+ Assert.assertTrue(destinationProviderCaptor.getValue() instanceof UnicastDestination);
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/NotificationsServiceImplTest.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/NotificationsServiceImplTest.java
new file mode 100644
index 0000000000..a20d0cce45
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/NotificationsServiceImplTest.java
@@ -0,0 +1,50 @@
+package org.openecomp.sdc.notification.services.impl;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.openecomp.sdc.notification.dao.LastNotificationDao;
+import org.openecomp.sdc.notification.dao.NotificationsDao;
+import org.openecomp.sdc.notification.dao.types.NotificationEntity;
+import org.openecomp.sdc.notification.exceptons.NotificationNotExistException;
+
+import java.util.UUID;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+/**
+ * @author avrahamg
+ * @since July 13, 2017
+ */
+public class NotificationsServiceImplTest {
+ @Mock
+ private LastNotificationDao lastNotificationDao;
+ @Mock
+ private NotificationsDao notificationsDao;
+ @Spy
+ @InjectMocks
+ private NotificationsServiceImpl notificationsService;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ public void shouldCallNotificationsDaoIfNotificationEntityExist() throws Exception {
+ doReturn(new NotificationEntity()).when(notificationsDao).get(any());
+ notificationsService.markAsRead("ownerId", UUID.randomUUID().toString());
+ verify(notificationsDao, times(1)).update(any());
+ }
+
+ @Test(expected = NotificationNotExistException.class)
+ public void shouldThrowExceptionIfOwnerIdAndNotificationIdDontRelate() throws Exception {
+ doReturn(null).when(notificationsDao).get(any());
+ notificationsService.markAsRead("ownerId", UUID.randomUUID().toString());
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/PropagationServiceImplTest.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/PropagationServiceImplTest.java
new file mode 100644
index 0000000000..866dec0d6d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-core/src/test/java/org/openecomp/sdc/notification/services/impl/PropagationServiceImplTest.java
@@ -0,0 +1,96 @@
+package org.openecomp.sdc.notification.services.impl;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.openecomp.sdc.destinationprovider.DestinationProvider;
+import org.openecomp.sdc.notification.dao.NotificationsDao;
+import org.openecomp.sdc.notification.dtos.Event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+
+import static org.mockito.Matchers.anyList;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+/**
+ * @author avrahamg
+ * @since July 13, 2017
+ */
+public class PropagationServiceImplTest {
+ @Mock
+ private NotificationsDao notificationsDaoMock;
+ @Mock
+ private Event eventMock;
+ @Mock
+ private DestinationProvider destinationProviderMock;
+ @Captor
+ private ArgumentCaptor<List> createBatchCaptor;
+
+ @Rule
+ public ExpectedException thrown= ExpectedException.none();
+
+ @InjectMocks
+ @Spy
+ private PropagationServiceImpl propagationService;
+ private List<String> subscribersList = Arrays.asList("A1, A2, A3");;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ initEventMock();
+ }
+
+ @Test
+ public void shouldCallToNotificationsDaoWithCreateBatchWithNotificationEntitiesAsNumberOfSubscribers()
+ throws Exception {
+ doReturn(subscribersList).when(destinationProviderMock).getSubscribers();
+ propagationService.notify(eventMock, destinationProviderMock);
+ verify(notificationsDaoMock).createBatch(createBatchCaptor.capture());
+ Assert.assertEquals(createBatchCaptor.getValue().size(), subscribersList.size());
+ }
+
+ @Test
+ public void shouldNotCallNotificationDaoIfSubscriberIsNull() throws Exception {
+ doReturn(Collections.EMPTY_LIST).when(destinationProviderMock).getSubscribers();
+ verify(notificationsDaoMock,never()).createBatch(anyList());
+ }
+
+ @Test
+ public void shouldThrowExceptionIfEventTypeIsNull() throws Exception {
+ doReturn(null).when(eventMock).getEventType();
+ callToNotify();
+ }
+
+ @Test
+ public void shouldThrowExceptionIfOriginatorIdIsNull() throws Exception {
+ doReturn(null).when(eventMock).getOriginatorId();
+ callToNotify();
+ }
+
+ private void callToNotify() {
+ thrown.expect(NullPointerException.class);
+ propagationService.notify(eventMock, destinationProviderMock);
+ }
+
+ private void initEventMock() {
+ doReturn("eventType").when(eventMock).getEventType();
+ doReturn("originator").when(eventMock).getOriginatorId();
+ doReturn("entity").when(eventMock).getEntityId();
+ doReturn(new HashMap<>()).when(eventMock).getAttributes();
+ }
+
+
+} \ No newline at end of file