Add collaboration feature
[sdc.git] / openecomp-be / lib / openecomp-sdc-notification-lib / openecomp-sdc-notification-core / src / test / java / org / openecomp / sdc / destinationprovider / impl / MulticastDestinationTest.java
1 package org.openecomp.sdc.destinationprovider.impl;
2
3 import org.junit.Before;
4 import org.junit.Test;
5 import org.mockito.Mock;
6 import org.mockito.MockitoAnnotations;
7 import org.openecomp.sdc.notification.services.SubscriptionService;
8
9 import java.util.Arrays;
10 import java.util.HashSet;
11 import java.util.List;
12 import java.util.Set;
13
14 import static org.junit.Assert.assertEquals;
15 import static org.junit.Assert.assertFalse;
16 import static org.junit.Assert.assertNotEquals;
17 import static org.junit.Assert.assertTrue;
18 import static org.mockito.Matchers.any;
19 import static org.mockito.Mockito.doReturn;
20
21 /**
22  * @author avrahamg
23  * @since July 13, 2017
24  */
25 public class MulticastDestinationTest {
26     @Mock
27     private SubscriptionService subscriptionServiceMock;
28
29     private final String excludedSubscriber = "excluded";
30     private Set<String> subscribers = new HashSet<>(Arrays.asList("a", "b", excludedSubscriber));
31     private MulticastDestination multicastDestination;
32
33     @Before
34     public void setUp() throws Exception {
35         MockitoAnnotations.initMocks(this);
36     }
37
38     @Test
39     public void shouldReturnAllSubscribersIfNoExcludedProvided() throws Exception {
40         doReturn(subscribers).when(subscriptionServiceMock).getSubscribers(any());
41         multicastDestination = new MulticastDestination("aa", subscriptionServiceMock);
42         assertEquals(subscribers.size(), multicastDestination.getSubscribers().size());
43         List<String> actualSubscribers = multicastDestination.getSubscribers();
44         assertTrue(actualSubscribers.containsAll(subscribers));
45     }
46
47     @Test
48     public void shouldReturnAllSubscribersExceptExcluded() throws Exception {
49         doReturn(subscribers).when(subscriptionServiceMock).getSubscribers(any());
50         multicastDestination =
51             new MulticastDestination("aa", subscriptionServiceMock, excludedSubscriber);
52         List<String> actualSubscribers = multicastDestination.getSubscribers();
53         assertNotEquals(this.subscribers.size(), actualSubscribers.size());
54         assertFalse(actualSubscribers.containsAll(subscribers));
55         assertFalse(actualSubscribers.contains(excludedSubscriber));
56     }
57
58     @Test(expected = UnsupportedOperationException.class)
59     public void shouldThrowUnsupportedOperationExceptionWhenTryingToChangeSubscribersList() throws
60         Exception {
61         doReturn(subscribers).when(subscriptionServiceMock).getSubscribers(any());
62         multicastDestination =
63             new MulticastDestination("aa", subscriptionServiceMock, excludedSubscriber);
64         List<String> actualSubscribers = multicastDestination.getSubscribers();
65         actualSubscribers.add("sss");
66     }
67 }