Search in sources :

Example 1 with NotificationManagerImpl

use of org.orcid.core.manager.v3.impl.NotificationManagerImpl in project ORCID-Source by ORCID.

the class NotificationManagerTest method sendAcknowledgeMessageToAccountWithNotificationsEnabledTest.

/**
 * 0000-0000-0000-0003 Must have notifications enabled
 */
@Test
public void sendAcknowledgeMessageToAccountWithNotificationsEnabledTest() throws Exception {
    String clientId = "APP-5555555555555555";
    String orcid = "0000-0000-0000-0003";
    // Mock the notification DAO
    NotificationManagerImpl notificationManagerImpl = getTargetObject(notificationManager, NotificationManagerImpl.class);
    notificationManagerImpl.setNotificationDao(mockNotificationDao);
    notificationManagerImpl.setMailGunManager(mockMailGunManager);
    notificationManagerImpl.sendAcknowledgeMessage(orcid, clientId);
    verify(mockNotificationDao, times(1)).persist(Matchers.any(NotificationEntity.class));
    verify(mockMailGunManager, never()).sendEmail(Matchers.anyString(), Matchers.anyString(), Matchers.anyString(), Matchers.anyString(), Matchers.anyString());
    // Rollback mocked
    notificationManagerImpl.setNotificationDao(notificationDao);
    notificationManagerImpl.setMailGunManager(mailGunManager);
}
Also used : ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) NotificationEntity(org.orcid.persistence.jpa.entities.NotificationEntity) NotificationManagerImpl(org.orcid.core.manager.v3.impl.NotificationManagerImpl) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 2 with NotificationManagerImpl

use of org.orcid.core.manager.v3.impl.NotificationManagerImpl in project ORCID-Source by ORCID.

the class NotificationManagerTest method sendAcknowledgeMessageToAccountWithNotificationsDisabledTest.

/**
 * 0000-0000-0000-0002 Must have notifications disabled
 */
@Test
public void sendAcknowledgeMessageToAccountWithNotificationsDisabledTest() throws Exception {
    String clientId = "APP-5555555555555555";
    String orcid = "0000-0000-0000-0002";
    // Mock the notification DAO
    NotificationManagerImpl notificationManagerImpl = getTargetObject(notificationManager, NotificationManagerImpl.class);
    notificationManagerImpl.setNotificationDao(mockNotificationDao);
    notificationManagerImpl.setMailGunManager(mockMailGunManager);
    notificationManagerImpl.sendAcknowledgeMessage(orcid, clientId);
    verify(mockNotificationDao, never()).persist(Matchers.any(NotificationEntity.class));
    verify(mockMailGunManager, times(1)).sendEmail(Matchers.anyString(), Matchers.anyString(), Matchers.anyString(), Matchers.anyString(), Matchers.anyString());
    // Rollback mocked
    notificationManagerImpl.setNotificationDao(notificationDao);
    notificationManagerImpl.setMailGunManager(mailGunManager);
}
Also used : ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) NotificationEntity(org.orcid.persistence.jpa.entities.NotificationEntity) NotificationManagerImpl(org.orcid.core.manager.v3.impl.NotificationManagerImpl) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 3 with NotificationManagerImpl

use of org.orcid.core.manager.v3.impl.NotificationManagerImpl in project ORCID-Source by ORCID.

the class NotificationManagerTest method testFindPermissionsByOrcidAndClient.

/**
 * Test independent of spring context, sets up NotificationManager with
 * mocked notifiation dao and notification adapter
 */
@Test
public void testFindPermissionsByOrcidAndClient() {
    List<Notification> notificationPermissions = IntStream.range(0, 10).mapToObj(i -> new NotificationPermission()).collect(Collectors.toList());
    NotificationDao notificationDao = mock(NotificationDaoImpl.class);
    JpaJaxbNotificationAdapter adapter = mock(JpaJaxbNotificationAdapterImpl.class);
    when(notificationDao.findPermissionsByOrcidAndClient(anyString(), anyString(), anyInt(), anyInt())).thenReturn(new ArrayList<NotificationEntity>());
    when(adapter.toNotification(Matchers.<ArrayList<NotificationEntity>>any())).thenReturn(notificationPermissions);
    NotificationManager notificationManager = new NotificationManagerImpl();
    ReflectionTestUtils.setField(notificationManager, "notificationAdapter", adapter);
    ReflectionTestUtils.setField(notificationManager, "notificationDao", notificationDao);
    NotificationPermissions notifications = notificationManager.findPermissionsByOrcidAndClient("some-orcid", "some-client", 0, OrcidApiConstants.MAX_NOTIFICATIONS_AVAILABLE);
    assertEquals(notificationPermissions.size(), notifications.getNotifications().size());
}
Also used : CoreMatchers.is(org.hamcrest.CoreMatchers.is) Notification(org.orcid.jaxb.model.v3.dev1.notification.Notification) Arrays(java.util.Arrays) Locale(org.orcid.jaxb.model.v3.dev1.common.Locale) TargetProxyHelper(org.orcid.test.TargetProxyHelper) Date(java.util.Date) OrcidJUnit4ClassRunner(org.orcid.test.OrcidJUnit4ClassRunner) URISyntaxException(java.net.URISyntaxException) ProfileEventEntity(org.orcid.persistence.jpa.entities.ProfileEventEntity) RecordNameEntity(org.orcid.persistence.jpa.entities.RecordNameEntity) DBUnitTest(org.orcid.test.DBUnitTest) Assert.assertThat(org.junit.Assert.assertThat) NotificationType(org.orcid.jaxb.model.v3.dev1.notification.NotificationType) MockitoAnnotations(org.mockito.MockitoAnnotations) Pair(org.apache.commons.lang3.tuple.Pair) ProfileDao(org.orcid.persistence.dao.ProfileDao) NotificationDao(org.orcid.persistence.dao.NotificationDao) After(org.junit.After) ProfileEntityCacheManager(org.orcid.core.manager.ProfileEntityCacheManager) NotificationInstitutionalConnection(org.orcid.model.v3.dev1.notification.institutional_sign_in.NotificationInstitutionalConnection) AfterClass(org.junit.AfterClass) OrcidProfile(org.orcid.jaxb.model.message.OrcidProfile) Resource(javax.annotation.Resource) EncryptionManager(org.orcid.core.manager.EncryptionManager) OrcidOauth2TokenDetailService(org.orcid.core.oauth.OrcidOauth2TokenDetailService) ClientDetailsEntity(org.orcid.persistence.jpa.entities.ClientDetailsEntity) Set(java.util.Set) Collectors(java.util.stream.Collectors) JAXBException(javax.xml.bind.JAXBException) ProfileEntity(org.orcid.persistence.jpa.entities.ProfileEntity) NotificationEntity(org.orcid.persistence.jpa.entities.NotificationEntity) List(java.util.List) Email(org.orcid.jaxb.model.v3.dev1.record.Email) EmailEntity(org.orcid.persistence.jpa.entities.EmailEntity) Source(org.orcid.jaxb.model.v3.dev1.common.Source) JpaJaxbNotificationAdapterImpl(org.orcid.core.adapter.v3.impl.JpaJaxbNotificationAdapterImpl) NotificationDaoImpl(org.orcid.persistence.dao.impl.NotificationDaoImpl) GenericDao(org.orcid.persistence.dao.GenericDao) NotificationManagerImpl(org.orcid.core.manager.v3.impl.NotificationManagerImpl) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) IntStream(java.util.stream.IntStream) NotificationCustomEntity(org.orcid.persistence.jpa.entities.NotificationCustomEntity) CoreMatchers.anyOf(org.hamcrest.CoreMatchers.anyOf) BeforeClass(org.junit.BeforeClass) NotificationPermissions(org.orcid.jaxb.model.v3.dev1.notification.permission.NotificationPermissions) Matchers(org.mockito.Matchers) Mock(org.mockito.Mock) CoreMatchers.not(org.hamcrest.CoreMatchers.not) RunWith(org.junit.runner.RunWith) ArrayUtils(org.apache.commons.lang3.ArrayUtils) NotificationPermission(org.orcid.jaxb.model.v3.dev1.notification.permission.NotificationPermission) MailGunManager(org.orcid.core.manager.impl.MailGunManager) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Answer(org.mockito.stubbing.Answer) InvocationOnMock(org.mockito.invocation.InvocationOnMock) NotificationCustom(org.orcid.jaxb.model.v3.dev1.notification.custom.NotificationCustom) EmailEventEntity(org.orcid.persistence.jpa.entities.EmailEventEntity) ArgumentMatchers.anyInt(org.mockito.ArgumentMatchers.anyInt) JAXBContext(javax.xml.bind.JAXBContext) IntFunction(java.util.function.IntFunction) Before(org.junit.Before) Unmarshaller(javax.xml.bind.Unmarshaller) SourceEntity(org.orcid.persistence.jpa.entities.SourceEntity) CollectionUtils(org.springframework.cglib.core.CollectionUtils) OrcidMessage(org.orcid.jaxb.model.message.OrcidMessage) Assert.assertNotNull(org.junit.Assert.assertNotNull) AmendedSection(org.orcid.jaxb.model.v3.dev1.notification.amended.AmendedSection) Assert.assertTrue(org.junit.Assert.assertTrue) ReflectionTestUtils(org.springframework.test.util.ReflectionTestUtils) Mockito.times(org.mockito.Mockito.times) IOException(java.io.IOException) Test(org.junit.Test) ClientDetailsDao(org.orcid.persistence.dao.ClientDetailsDao) Mockito.when(org.mockito.Mockito.when) LocalDateTime(org.joda.time.LocalDateTime) OrcidApiConstants(org.orcid.core.api.OrcidApiConstants) Mockito.verify(org.mockito.Mockito.verify) Mockito(org.mockito.Mockito) Mockito.never(org.mockito.Mockito.never) EmailEventType(org.orcid.persistence.jpa.entities.EmailEventType) ContextConfiguration(org.springframework.test.context.ContextConfiguration) SecurityQuestionEntity(org.orcid.persistence.jpa.entities.SecurityQuestionEntity) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) JpaJaxbNotificationAdapter(org.orcid.core.adapter.v3.JpaJaxbNotificationAdapter) Transactional(org.springframework.transaction.annotation.Transactional) NotificationDao(org.orcid.persistence.dao.NotificationDao) JpaJaxbNotificationAdapter(org.orcid.core.adapter.v3.JpaJaxbNotificationAdapter) NotificationPermissions(org.orcid.jaxb.model.v3.dev1.notification.permission.NotificationPermissions) NotificationPermission(org.orcid.jaxb.model.v3.dev1.notification.permission.NotificationPermission) NotificationEntity(org.orcid.persistence.jpa.entities.NotificationEntity) Notification(org.orcid.jaxb.model.v3.dev1.notification.Notification) NotificationManagerImpl(org.orcid.core.manager.v3.impl.NotificationManagerImpl) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)3 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)3 NotificationManagerImpl (org.orcid.core.manager.v3.impl.NotificationManagerImpl)3 NotificationEntity (org.orcid.persistence.jpa.entities.NotificationEntity)3 DBUnitTest (org.orcid.test.DBUnitTest)3 IOException (java.io.IOException)1 URISyntaxException (java.net.URISyntaxException)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 Collections (java.util.Collections)1 Date (java.util.Date)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Set (java.util.Set)1 IntFunction (java.util.function.IntFunction)1 Collectors (java.util.stream.Collectors)1 IntStream (java.util.stream.IntStream)1 Resource (javax.annotation.Resource)1 JAXBContext (javax.xml.bind.JAXBContext)1 JAXBException (javax.xml.bind.JAXBException)1