diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/common/TestDataHolder.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/common/TestDataHolder.java index 356efb2426..a6af04fad7 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/common/TestDataHolder.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/common/TestDataHolder.java @@ -53,13 +53,14 @@ public class TestDataHolder { return device; } - public static Notification getNotification(int notificationId, String status, String deviceId, String deviceName, - int operationId, String deviceType){ + public static Notification getNotification(int notificationId, String status, String deviceId, + String description, String deviceName, int operationId, + String deviceType) { Notification notification = new Notification(); notification.setNotificationId(notificationId); notification.setStatus(status); notification.setDeviceIdentifier(deviceId); - notification.setDescription("test description"); + notification.setDescription(description); notification.setDeviceName(deviceName); notification.setOperationId(operationId); notification.setDeviceType(deviceType); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/notification/mgt/NotificationManagementTests.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/notification/mgt/NotificationManagementServiceImplTests.java similarity index 52% rename from components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/notification/mgt/NotificationManagementTests.java rename to components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/notification/mgt/NotificationManagementServiceImplTests.java index 8257785fc1..87de357830 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/notification/mgt/NotificationManagementTests.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/java/org/wso2/carbon/device/mgt/core/notification/mgt/NotificationManagementServiceImplTests.java @@ -24,7 +24,9 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.DeviceIdentifier; +import org.wso2.carbon.device.mgt.common.EntityDoesNotExistException; import org.wso2.carbon.device.mgt.common.notification.mgt.Notification; +import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException; import org.wso2.carbon.device.mgt.core.TestDeviceManagementService; import org.wso2.carbon.device.mgt.core.authorization.DeviceAccessAuthorizationServiceImpl; import org.wso2.carbon.device.mgt.core.common.TestDataHolder; @@ -47,21 +49,25 @@ import java.util.ArrayList; import java.util.List; /** - * This class is used to test NotificationManagementServiceImpl. + * This is the test class for {@link NotificationManagementServiceImpl} */ -public class NotificationManagementTests { +public class NotificationManagementServiceImplTests { - private static final Log log = LogFactory.getLog(NotificationManagementTests.class); + private static final Log log = LogFactory.getLog(NotificationManagementServiceImplTests.class); private static final String DEVICE_TYPE = "NOTIFICATION_TEST_DEVICE"; private static final String DEVICE_ID_PREFIX = "NOTIFICATION-TEST-DEVICE-ID-"; private static final int NO_OF_DEVICES = 10; + private static final int NO_OF_NOTIFICATIONS = 10; private List deviceIds = new ArrayList<>(); + private NotificationManagementServiceImpl notificationManagementService; + private static final String TEST_NOTIFICATION_DESCRIPTION = "test notification"; + private static final int NOTIFICATION_OPERATION_ID = 1; @BeforeClass public void init() throws Exception { DeviceConfigurationManager.getInstance().initConfig(); log.info("Initializing"); - for (int i = 0; i < NO_OF_DEVICES; i++) { + for (int i = 1; i <= NO_OF_DEVICES; i++) { deviceIds.add(new DeviceIdentifier(DEVICE_ID_PREFIX + i, DEVICE_TYPE)); } List devices = TestDataHolder.generateDummyDeviceData(this.deviceIds); @@ -84,6 +90,7 @@ public class NotificationManagementTests { throw new Exception("Incorrect device with ID - " + device.getDeviceIdentifier() + " returned!"); } } + notificationManagementService = new NotificationManagementServiceImpl(); } private RegistryService getRegistryService() throws RegistryException { @@ -97,14 +104,71 @@ public class NotificationManagementTests { } @Test(description = "Add notifications using addNotification method and check whether it returns true.") - public void addNotification() throws Exception { - for (int i = 0; i < NO_OF_DEVICES; i++) { + public void addNotification() throws NotificationManagementException { + for (int i = 1; i <= NO_OF_DEVICES; i++) { DeviceIdentifier testDeviceIdentifier = new DeviceIdentifier(DEVICE_ID_PREFIX + i, DEVICE_TYPE); - Notification notification = TestDataHolder.getNotification(i, "CHECKED", - testDeviceIdentifier.toString(), DEVICE_ID_PREFIX + i, 1, DEVICE_TYPE); - NotificationManagementServiceImpl notificationManagementService = new NotificationManagementServiceImpl(); + Notification notification = TestDataHolder.getNotification(i, Notification.Status.NEW.toString(), + testDeviceIdentifier.toString(), TEST_NOTIFICATION_DESCRIPTION, DEVICE_ID_PREFIX + i, + NOTIFICATION_OPERATION_ID, DEVICE_TYPE); Assert.assertTrue(notificationManagementService.addNotification(testDeviceIdentifier, notification)); } } + + @Test(expectedExceptions = EntityDoesNotExistException.class, description = "AddNotification method is checked" + + " whether it returns EntityDoesNotExistException when the device not registered is added notification") + public void addNotificationExceptions() throws NotificationManagementException { + DeviceIdentifier testDeviceIdentifier = new DeviceIdentifier(DEVICE_ID_PREFIX + 123, DEVICE_TYPE); + Notification notification = TestDataHolder.getNotification(1, Notification.Status.NEW.toString(), + testDeviceIdentifier.toString(), TEST_NOTIFICATION_DESCRIPTION, DEVICE_ID_PREFIX + 123, + NOTIFICATION_OPERATION_ID, DEVICE_TYPE); + notificationManagementService.addNotification(new DeviceIdentifier(DEVICE_ID_PREFIX + 123, + DEVICE_TYPE), notification); + } + + @Test(dependsOnMethods = "addNotification", description = "This tests the updateNotification Method" + + " and check whether it returns true ( got updated )") + public void updateNotification() throws NotificationManagementException { + for (int i = 1; i <= NO_OF_DEVICES; i++) { + DeviceIdentifier testDeviceIdentifier = new DeviceIdentifier(DEVICE_ID_PREFIX + i, DEVICE_TYPE); + Notification notification = TestDataHolder.getNotification(i, Notification.Status.CHECKED.toString(), + testDeviceIdentifier.toString(), TEST_NOTIFICATION_DESCRIPTION, DEVICE_ID_PREFIX + i, NOTIFICATION_OPERATION_ID, + DEVICE_TYPE); + Assert.assertTrue(notificationManagementService.updateNotification(notification)); + } + } + + @Test(dependsOnMethods = "updateNotification", description = "This method update notification status " + + "and check whether it got updated") + public void updateNotificationStatus() throws NotificationManagementException { + for (int i = 1; i <= NO_OF_DEVICES; i++) { + Assert.assertTrue(notificationManagementService.updateNotificationStatus(i, Notification.Status.CHECKED)); + } + } + + @Test(dependsOnMethods = "addNotification", description = "this tests getAllNotifications" + + " method by listing down all the notifications.") + public void getAllNotifications() throws NotificationManagementException { + List returnedNotifications = notificationManagementService.getAllNotifications(); + Assert.assertEquals(returnedNotifications.size(), NO_OF_DEVICES); + } + + @Test(dependsOnMethods = "updateNotificationStatus", description = "this method retries notification by id" + + " and checks it") + public void getNotification() throws NotificationManagementException { + for (int i = 1; i <= NO_OF_DEVICES; i++) { + Notification returnedNotification = notificationManagementService.getNotification(i); + Assert.assertEquals(returnedNotification.getNotificationId(), i); + Assert.assertEquals(returnedNotification.getStatus(), Notification.Status.CHECKED); + Assert.assertEquals(returnedNotification.getDescription(), TEST_NOTIFICATION_DESCRIPTION); + Assert.assertEquals(returnedNotification.getOperationId(), NOTIFICATION_OPERATION_ID); + } + } + + @Test(dependsOnMethods = "updateNotificationStatus", description = "this method gets all notification by status checked") + public void getNotificationsByStatus() throws NotificationManagementException { + List returnedNotifications = notificationManagementService.getNotificationsByStatus(Notification.Status.CHECKED); + Assert.assertEquals(returnedNotifications.size(), NO_OF_NOTIFICATIONS); + } + } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml index 331aac6c38..7ab82eaf07 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/testng.xml @@ -43,7 +43,7 @@ - +