Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[OB3] [Accelerator] Fix issues in Realtime Notification #170

Closed
wants to merge 94 commits into from
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
e055a7f
Improvement to Idempotency validation with extending capability
Ashi1993 Mar 22, 2024
00385c8
Improvement to Idempotency validation with extending capability
Ashi1993 Mar 22, 2024
eb45d2a
Improvement to Idempotency validation with extending capability
Ashi1993 Mar 25, 2024
e120569
Fixed review comments
Ashi1993 Mar 25, 2024
6b7b503
Fixed review comments
Ashi1993 Mar 25, 2024
473c6a6
Fixed review comments
Ashi1993 Mar 25, 2024
a4a8132
Fixed review comments
Ashi1993 Mar 25, 2024
0a8b134
Fixed review comments
Ashi1993 Mar 26, 2024
910e968
Fixed review comments
Ashi1993 Mar 26, 2024
872101f
Changing parent pom version to support jenkins releases
Ashi1993 Mar 26, 2024
bd0da2b
Changing parent pom version to support jenkins releases
Ashi1993 Mar 26, 2024
f440bda
Removing existing implementation
Ashi1993 Aug 22, 2024
0f16dff
Removing existing implementation
Ashi1993 Aug 22, 2024
4f27aa2
Merge pull request #105 from Ashi1993/mian-clone
RivinduM Aug 22, 2024
18c1762
Modifying root and module poms, module names and removing BI accelera…
Ashi1993 Aug 22, 2024
3f367da
Modifying root and module poms, module names and removing BI accelera…
Ashi1993 Aug 22, 2024
124b590
Modifying root and module poms, module names and removing BI accelera…
Ashi1993 Aug 22, 2024
105802d
Modifying root and module poms, module names and removing BI accelera…
Ashi1993 Aug 22, 2024
a6adad8
Merge pull request #106 from Ashi1993/OB4-common
hasithakn Aug 26, 2024
419a6ec
Adding Common Module Implementation
Ashi1993 Aug 27, 2024
961375f
Merge remote-tracking branch 'upstream/main' into OB4-common
Ashi1993 Aug 27, 2024
6e29685
Adding Common Module Implementation
Ashi1993 Aug 27, 2024
c4c384e
Adding Common Module Implementation
Ashi1993 Aug 27, 2024
e07b2e6
Adding Common Module Implementation
Ashi1993 Aug 27, 2024
434d1c8
Changing action build to java 11
Ashi1993 Aug 27, 2024
5a9cfd3
Adding Consent Implementation
Ashi1993 Sep 6, 2024
e989b60
Adding common implementation
Ashi1993 Sep 6, 2024
3c3d082
Adding consent implementation
Ashi1993 Sep 6, 2024
d416913
Adding common implementation
Ashi1993 Sep 6, 2024
b5c2175
Adding Identity extensions implementation
Ashi1993 Sep 9, 2024
cc9c4b8
Fix review comments
Ashi1993 Sep 9, 2024
fa83d03
Adding Identity Extensions Implementation
Ashi1993 Sep 9, 2024
ac613d1
Merge pull request #107 from Ashi1993/OB4-common
aka4rKO Sep 9, 2024
c21f459
Adding Identity Extensions Implementation
Ashi1993 Sep 9, 2024
fa0db59
Adding Webapp Implementation
Ashi1993 Sep 9, 2024
a48e448
[Accelerator 4] Adding Consent Management Implementation (#108)
Ashi1993 Sep 9, 2024
71d678a
Merge remote-tracking branch 'upstream/main' into test
Ashi1993 Sep 9, 2024
81c4f1a
Fixed review comments
Ashi1993 Sep 9, 2024
6948597
Adding identity implementation
Ashi1993 Sep 9, 2024
c99bab8
Merge remote-tracking branch 'upstream/main' into OB4-common
Ashi1993 Sep 9, 2024
d872fa9
Adding Webapp implementation
Ashi1993 Sep 9, 2024
c8dc488
Fixing review comments
Ashi1993 Sep 10, 2024
4f56d91
Fixing review comments
Ashi1993 Sep 10, 2024
113119a
Fixing review comments
Ashi1993 Sep 10, 2024
fe1e2b6
Fixing review comments
Ashi1993 Sep 10, 2024
5cb938e
Fixing review comments
Ashi1993 Sep 10, 2024
33337e1
Fixing review comments
Ashi1993 Sep 10, 2024
4f0b58b
Merge pull request #110 from Ashi1993/common
hasithakn Sep 10, 2024
651f8d5
Merge remote-tracking branch 'upstream/main' into test
Ashi1993 Sep 10, 2024
51e7cc3
Fixing review comments
Ashi1993 Sep 10, 2024
3a6f400
Fixing Osgi issues
Ashi1993 Sep 10, 2024
32f9970
Fixing Osgi issues
Ashi1993 Sep 10, 2024
39d8819
Update financial-services-accelerator/components/org.wso2.financial.s…
Ashi1993 Sep 11, 2024
8af72c7
Update financial-services-accelerator/components/org.wso2.financial.s…
Ashi1993 Sep 11, 2024
89fe5db
Fixing review comments
Ashi1993 Sep 11, 2024
9039e28
Merge pull request #109 from Ashi1993/test
RivinduM Sep 11, 2024
2b31858
Moving webapp implementations to a new folder
Ashi1993 Sep 25, 2024
75d5bf8
Merge pull request #124 from Ashi1993/test
hasithakn Sep 25, 2024
6d90d31
Adding Accelerator Gateway Implemntation
Ashi1993 Sep 26, 2024
e60e892
Modifying AM and IAM accelerator modules
Ashi1993 Sep 26, 2024
22af387
Renaming AM and IAM accelerator modules (#125)
Ashi1993 Sep 26, 2024
f25a66a
MOdifying AM and IAM accelerator modules
Ashi1993 Sep 27, 2024
1ad1816
Merge remote-tracking branch 'upstream/main' into configs
Ashi1993 Sep 27, 2024
b8e4184
Modifying AM and IAM accelerator modules
Ashi1993 Sep 27, 2024
bc89bd3
Modifying AM and IAM accelerator modules
Ashi1993 Sep 27, 2024
52338b8
Merge remote-tracking branch 'upstream/main' into gateway
Ashi1993 Sep 27, 2024
ccaa8bc
Merge pull request #126 from Ashi1993/configs
anjuchamantha Sep 30, 2024
43090a2
Adding gateway implementation
Ashi1993 Sep 30, 2024
e1c7fe0
Merge remote-tracking branch 'upstream/main' into gateway
Ashi1993 Sep 30, 2024
66dcc1b
Adding gateway implementation
Ashi1993 Sep 30, 2024
a79ad69
Adding unit tests
Ashi1993 Sep 30, 2024
118d0f4
Fixed review comments
Ashi1993 Oct 1, 2024
0a65db6
Merge pull request #127 from Ashi1993/gateway
aka4rKO Oct 2, 2024
6e9691a
Updating configuration and accelerators to support APIM 4.4 and IS 7.0
Ashi1993 Oct 2, 2024
4b6ddfc
Merge remote-tracking branch 'upstream/main' into configs
Ashi1993 Oct 2, 2024
8bf54bf
Updating configuration and accelerators to support APIM 4.4 and IS 7.0
Ashi1993 Oct 2, 2024
e4cf97b
Adding configs
Ashi1993 Oct 8, 2024
88cafc4
Adding configs
Ashi1993 Oct 8, 2024
99ad165
Adding configs
Ashi1993 Oct 9, 2024
82194da
Adding configs
Ashi1993 Oct 9, 2024
a580405
Merge pull request #129 from Ashi1993/configs
Akila94 Oct 11, 2024
1053789
Adding Event notification implementation
Ashi1993 Oct 24, 2024
b74b5f0
Adding Event creation, polling and subscription implementation
Ashi1993 Oct 27, 2024
867c2d6
Merge remote-tracking branch 'origin/event' into event
Ashi1993 Oct 27, 2024
358e98b
Removing conflicts
Ashi1993 Oct 27, 2024
339d87d
Fix unit test coverage issue
Ashi1993 Oct 28, 2024
edd1e17
Fixing build issue
Ashi1993 Oct 28, 2024
f37a27e
Fix osgi issues
Ashi1993 Oct 29, 2024
14b8de9
Adding event notification implementation
Ashi1993 Oct 31, 2024
05b0bdb
Adding realtime event notification implementation
Ashi1993 Oct 31, 2024
24d8b34
Fix issues in realtime notification
Ashi1993 Nov 1, 2024
74cd6aa
Fixed review comment
Ashi1993 Nov 1, 2024
605849f
Adding realtime event notification implementation
Ashi1993 Nov 4, 2024
a18ae9e
Merge remote-tracking branch 'origin/realtime' into realtime
Ashi1993 Nov 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,20 @@
import com.wso2.openbanking.accelerator.event.notifications.service.dto.NotificationDTO;
import com.wso2.openbanking.accelerator.event.notifications.service.exceptions.OBEventNotificationException;
import com.wso2.openbanking.accelerator.event.notifications.service.internal.EventNotificationDataHolder;
import com.wso2.openbanking.accelerator.event.notifications.service.model.EventSubscription;
import com.wso2.openbanking.accelerator.event.notifications.service.model.Notification;
import com.wso2.openbanking.accelerator.event.notifications.service.model.NotificationEvent;
import com.wso2.openbanking.accelerator.event.notifications.service.realtime.model.RealtimeEventNotification;
import com.wso2.openbanking.accelerator.event.notifications.service.service.EventNotificationGenerator;
import com.wso2.openbanking.accelerator.event.notifications.service.service.EventPollingService;
import com.wso2.openbanking.accelerator.event.notifications.service.util.EventNotificationServiceUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.identity.oauth2.IdentityOAuth2Exception;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;

Expand All @@ -52,26 +55,46 @@ public EventNotificationProducerService(

@Override
public void run() {
String callbackUrl = EventNotificationServiceUtil.getCallbackURL(notificationDTO.getClientId());

LinkedBlockingQueue<RealtimeEventNotification> queue = EventNotificationDataHolder.getInstance().
getRealtimeEventNotificationQueue();
EventNotificationGenerator eventNotificationGenerator = EventNotificationServiceUtil.
getEventNotificationGenerator();
RealtimeEventNotification realtimeEventNotification = new RealtimeEventNotification();
realtimeEventNotification.setNotificationDTO(notificationDTO);
realtimeEventNotification.setCallbackUrl(callbackUrl);

try {
Notification notification = eventNotificationGenerator.generateEventNotificationBody(
notificationDTO, notificationEvents);
realtimeEventNotification.setEventSET(eventNotificationGenerator.generateEventNotification(
Notification.getJsonNode(notification)));
List<EventSubscription> subscriptionList = EventNotificationServiceUtil.getEventSubscriptionService()
.getEventSubscriptionsByClientId(notificationDTO.getClientId());
if (CollectionUtils.isEmpty(subscriptionList)) {
throw new OBEventNotificationException("No subscriptions found for the client ID: " +
notificationDTO.getClientId());
}

LinkedBlockingQueue<RealtimeEventNotification> queue = EventNotificationDataHolder.getInstance().
getRealtimeEventNotificationQueue();
EventNotificationGenerator eventNotificationGenerator = EventNotificationServiceUtil.
getEventNotificationGenerator();

for (EventSubscription subscription : subscriptionList) {

List<NotificationEvent> allowedEvents = new ArrayList<>();
notificationEvents.forEach(notificationEvent -> {
if (subscription.getEventTypes().contains(notificationEvent.getEventType())) {
allowedEvents.add(notificationEvent);
}
});

if (!allowedEvents.isEmpty()) {
RealtimeEventNotification realtimeEventNotification = new RealtimeEventNotification();
realtimeEventNotification.setNotificationDTO(notificationDTO);
realtimeEventNotification.setCallbackUrl(subscription.getCallbackUrl());

Notification notification = eventNotificationGenerator.generateEventNotificationBody(
notificationDTO, allowedEvents);
realtimeEventNotification.setEventSET(eventNotificationGenerator
.generateEventNotification(Notification.getJsonNode(notification)));

queue.put(realtimeEventNotification); // put the notification into the queue
queue.put(realtimeEventNotification); // put the notification into the queue
}
}
} catch (InterruptedException e) {
log.error("Error when adding the Realtime Notification with notification ID " +
notificationDTO.getNotificationId() + " into the RealtimeEventNotification Queue", e);
notificationDTO.getNotificationId().replaceAll("[\r\n]", "") +
" into the RealtimeEventNotification Queue", e);
} catch (OBEventNotificationException e) {
log.error("Error when generating the event notification", e);
} catch (IOException | JOSEException | IdentityOAuth2Exception e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,21 @@
import com.wso2.openbanking.accelerator.event.notifications.service.dto.NotificationDTO;
import com.wso2.openbanking.accelerator.event.notifications.service.exceptions.OBEventNotificationException;
import com.wso2.openbanking.accelerator.event.notifications.service.internal.EventNotificationDataHolder;
import com.wso2.openbanking.accelerator.event.notifications.service.model.EventSubscription;
import com.wso2.openbanking.accelerator.event.notifications.service.model.Notification;
import com.wso2.openbanking.accelerator.event.notifications.service.model.NotificationEvent;
import com.wso2.openbanking.accelerator.event.notifications.service.persistence.EventPollingStoreInitializer;
import com.wso2.openbanking.accelerator.event.notifications.service.realtime.model.RealtimeEventNotification;
import com.wso2.openbanking.accelerator.event.notifications.service.service.EventNotificationGenerator;
import com.wso2.openbanking.accelerator.event.notifications.service.service.EventPollingService;
import com.wso2.openbanking.accelerator.event.notifications.service.util.EventNotificationServiceUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.identity.oauth2.IdentityOAuth2Exception;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;

Expand Down Expand Up @@ -63,17 +66,30 @@ public void run() {
List<NotificationEvent> notificationEvents = aggregatedPollingDAO.
getEventsByNotificationID(notificationDTO.getNotificationId());

Notification responseNotification = eventNotificationGenerator.
generateEventNotificationBody(notificationDTO, notificationEvents);
List<EventSubscription> subscriptionList = EventNotificationServiceUtil.getEventSubscriptionService()
.getEventSubscriptionsByClientId(notificationDTO.getClientId());
if (CollectionUtils.isEmpty(subscriptionList)) {
throw new OBEventNotificationException("No subscriptions found for the client ID: " +
notificationDTO.getClientId());
}

String callbackUrl = EventNotificationServiceUtil.getCallbackURL(notificationDTO.getClientId());
for (EventSubscription subscription : subscriptionList) {
List<NotificationEvent> allowedEvents = new ArrayList<>();
notificationEvents.forEach(notificationEvent -> {
if (subscription.getEventTypes().contains(notificationEvent.getEventType())) {
allowedEvents.add(notificationEvent);
}
});

RealtimeEventNotification realtimeEventNotification = new RealtimeEventNotification();
realtimeEventNotification.setCallbackUrl(callbackUrl);
realtimeEventNotification.setEventSET(eventNotificationGenerator.generateEventNotification(
Notification.getJsonNode(responseNotification)));
realtimeEventNotification.setNotificationDTO(notificationDTO);
queue.put(realtimeEventNotification); // put the notification into the queue
Notification responseNotification = eventNotificationGenerator.
generateEventNotificationBody(notificationDTO, allowedEvents);
RealtimeEventNotification realtimeEventNotification = new RealtimeEventNotification();
realtimeEventNotification.setCallbackUrl(subscription.getCallbackUrl());
realtimeEventNotification.setEventSET(eventNotificationGenerator.
generateEventNotification(Notification.getJsonNode(responseNotification)));
realtimeEventNotification.setNotificationDTO(notificationDTO);
queue.put(realtimeEventNotification); // put the notification into the queue
}
}
} catch (InterruptedException e) {
log.error("Error when adding the Realtime Notification into the RealtimeEventNotification Queue", e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ private void postWithRetry() throws OBEventNotificationException {

HttpResponse response = httpClient.execute(httpPost);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {
if (statusCode == HttpStatus.SC_ACCEPTED) {
if (log.isDebugEnabled()) {
log.debug("Real-time event notification with notificationId: " + notificationId
+ " sent successfully");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import com.wso2.openbanking.accelerator.event.notifications.service.handler.DefaultEventCreationServiceHandler;
import com.wso2.openbanking.accelerator.event.notifications.service.realtime.service.RealtimeEventNotificationRequestGenerator;
import com.wso2.openbanking.accelerator.event.notifications.service.service.EventNotificationGenerator;
import com.wso2.openbanking.accelerator.event.notifications.service.service.EventSubscriptionService;
import net.minidev.json.JSONObject;
import net.minidev.json.parser.JSONParser;
import net.minidev.json.parser.ParseException;
Expand Down Expand Up @@ -135,17 +136,6 @@ public static synchronized ConsentCoreServiceImpl getConsentCoreServiceImpl() {
return consentCoreService;
}

/**
* Get the callback URL of the TPP from the Subscription Object.
*
* @param clientID client ID of the TPP
* @return callback URL of the TPP
*/
public static String getCallbackURL(String clientID) {

return "http://localhost:8080/sample-tpp-server";
}

/**
* Get the default event creation service handler.
*
Expand All @@ -168,4 +158,8 @@ public static EventNotificationErrorDTO getErrorDTO(String error, String errorDe
eventNotificationErrorDTO.setErrorDescription(errorDescription);
return eventNotificationErrorDTO;
}

public static EventSubscriptionService getEventSubscriptionService() {
return new EventSubscriptionService();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.wso2.openbanking.accelerator.event.notifications.service.model.Notification;
import com.wso2.openbanking.accelerator.event.notifications.service.realtime.model.RealtimeEventNotification;
import com.wso2.openbanking.accelerator.event.notifications.service.service.DefaultEventNotificationGenerator;
import com.wso2.openbanking.accelerator.event.notifications.service.service.EventSubscriptionService;
import com.wso2.openbanking.accelerator.event.notifications.service.util.EventNotificationServiceUtil;
import com.wso2.openbanking.accelerator.event.notifications.service.utils.EventNotificationTestUtils;
import net.minidev.json.parser.ParseException;
Expand All @@ -51,7 +52,9 @@ public class EventNotificationProducerServiceTests extends PowerMockTestCase {
@Test
public void testRun() throws OBEventNotificationException, ParseException, InterruptedException {
LinkedBlockingQueue<RealtimeEventNotification> eventQueue = new LinkedBlockingQueue<>();
String callbackUrl = EventNotificationTestConstants.SAMPLE_CALLBACK_URL;
EventSubscriptionService eventSubscriptionService = Mockito.mock(EventSubscriptionService.class);
Mockito.when(eventSubscriptionService.getEventSubscriptionsByClientId(any()))
.thenReturn(EventNotificationTestUtils.getEventSubscrptionList());

DefaultEventNotificationGenerator mockedEventNotificationGenerator =
Mockito.mock(DefaultEventNotificationGenerator.class);
Expand All @@ -63,7 +66,8 @@ public void testRun() throws OBEventNotificationException, ParseException, Inter
mockedEventNotificationGenerator);
PowerMockito.when(EventNotificationServiceUtil.getRealtimeEventNotificationRequestGenerator())
.thenReturn(mockedRealtimeEventNotificationRequestGenerator);
PowerMockito.when(EventNotificationServiceUtil.getCallbackURL(Mockito.any())).thenReturn(callbackUrl);
PowerMockito.when(EventNotificationServiceUtil.getEventSubscriptionService())
.thenReturn(eventSubscriptionService);

EventNotificationDataHolder eventNotificationDataHolderMock = Mockito.mock(EventNotificationDataHolder.class);
Mockito.when(eventNotificationDataHolderMock.getRealtimeEventNotificationQueue()).thenReturn(eventQueue);
Expand Down Expand Up @@ -94,6 +98,6 @@ public void testRun() throws OBEventNotificationException, ParseException, Inter

Assert.assertEquals(notification.getJsonPayload(), testPayload);
Assert.assertEquals(notification.getNotificationId(), EventNotificationTestConstants.SAMPLE_NOTIFICATION_ID);
Assert.assertEquals(notification.getCallbackUrl(), callbackUrl);
Assert.assertEquals(notification.getCallbackUrl(), EventNotificationTestConstants.SAMPLE_CALLBACK_URL);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
import com.wso2.openbanking.accelerator.event.notifications.service.persistence.EventPollingStoreInitializer;
import com.wso2.openbanking.accelerator.event.notifications.service.realtime.model.RealtimeEventNotification;
import com.wso2.openbanking.accelerator.event.notifications.service.service.DefaultEventNotificationGenerator;
import com.wso2.openbanking.accelerator.event.notifications.service.service.EventSubscriptionService;
import com.wso2.openbanking.accelerator.event.notifications.service.util.EventNotificationServiceUtil;
import com.wso2.openbanking.accelerator.event.notifications.service.utils.EventNotificationTestUtils;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
Expand All @@ -55,6 +57,9 @@ public class RealtimeEventNotificationLoaderServiceTest extends PowerMockTestCas
@Test
public void testRun() throws OBEventNotificationException, InterruptedException {
LinkedBlockingQueue<RealtimeEventNotification> eventQueue = new LinkedBlockingQueue<>();
EventSubscriptionService eventSubscriptionService = Mockito.mock(EventSubscriptionService.class);
Mockito.when(eventSubscriptionService.getEventSubscriptionsByClientId(any()))
.thenReturn(EventNotificationTestUtils.getEventSubscrptionList());

DefaultEventNotificationGenerator mockedEventNotificationGenerator =
Mockito.mock(DefaultEventNotificationGenerator.class);
Expand All @@ -66,6 +71,8 @@ public void testRun() throws OBEventNotificationException, InterruptedException
mockedEventNotificationGenerator);
PowerMockito.when(EventNotificationServiceUtil.getRealtimeEventNotificationRequestGenerator()).thenReturn(
mockedRealtimeEventNotificationRequestGenerator);
PowerMockito.when(EventNotificationServiceUtil.getEventSubscriptionService())
.thenReturn(eventSubscriptionService);

EventNotificationDataHolder eventNotificationDataHolderMock = Mockito.mock(EventNotificationDataHolder.class);
Mockito.when(eventNotificationDataHolderMock.getRealtimeEventNotificationQueue()).thenReturn(eventQueue);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -272,4 +272,20 @@ public static EventSubscriptionDTO getSampleEventSubscriptionUpdateDTO() {
eventSubscriptionDTO.setRequestData(request);
return eventSubscriptionDTO;
}

public static List<EventSubscription> getEventSubscrptionList() {
EventSubscription eventSubscription = new EventSubscription();
eventSubscription.setCallbackUrl(EventNotificationTestConstants.SAMPLE_CALLBACK_URL);
eventSubscription.setEventTypes(getSampleEventTypeList());
List<EventSubscription> eventSubscriptions = new ArrayList<>();
eventSubscriptions.add(eventSubscription);
return eventSubscriptions;
}

public static List<String> getSampleEventTypeList() {
List<String> eventsTypes = new ArrayList<>();
eventsTypes.add(EventNotificationTestConstants.SAMPLE_NOTIFICATION_EVENT_TYPE_1);

return eventsTypes;
}
}
Loading