/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.notification; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedSet; import org.easymock.EasyMock; import de.rcenvironment.core.communication.api.CommunicationService; import de.rcenvironment.core.communication.api.PlatformService; import de.rcenvironment.core.notification.api.RemotableNotificationService; import de.rcenvironment.core.notification.internal.NotificationServiceImpl; import de.rcenvironment.core.utils.common.rpc.RemoteOperationException; /** * Factory for mock objects used by this bundle's test. * * @author Doreen Seider * @author Robert Mischke (8.0.0 id adaptations) */ public final class NotificationMockFactory { private static NotificationMockFactory instance = null; private CommunicationService communicationServiceMock; private PlatformService platformServiceMock; private NotificationService notificationServiceMock; private NotificationMockFactory() { createPlatformServiceMock(); createNotificationServiceMock(); createCommunicationServiceMock(); } /** * Getter. * * @return Instance of this class. */ public static synchronized NotificationMockFactory getInstance() { if (instance == null) { instance = new NotificationMockFactory(); } return instance; } public CommunicationService getCommunicationServiceMock() { return communicationServiceMock; } // note: not used as of RCE 7.0.0 public RemotableNotificationService getNotificationServiceMock() { return notificationServiceMock; } public PlatformService getPlatformServiceMock() { return platformServiceMock; } private void createPlatformServiceMock() { platformServiceMock = EasyMock.createNiceMock(PlatformService.class); EasyMock.expect(platformServiceMock.getLocalInstanceNodeSessionId()).andReturn(NotificationTestConstants.LOCAL_INSTANCE_SESSION) .anyTimes(); EasyMock.expect(platformServiceMock.matchesLocalInstance(NotificationTestConstants.LOCAL_INSTANCE_SESSION)).andReturn(true) .anyTimes(); EasyMock.expect(platformServiceMock.matchesLocalInstance(NotificationTestConstants.REMOTE_INSTANCE_SESSION)).andReturn(false) .anyTimes(); EasyMock.replay(platformServiceMock); } private void createNotificationServiceMock() { notificationServiceMock = EasyMock.createNiceMock(NotificationServiceImpl.class); EasyMock.expect(notificationServiceMock.getNotification(NotificationTestConstants.NOTIFICATION_HEADER)) .andReturn(NotificationTestConstants.NOTIFICATION); Map<String, SortedSet<NotificationHeader>> headers = new HashMap<String, SortedSet<NotificationHeader>>(); headers.put(NotificationTestConstants.NOTIFICATION_ID, NotificationTestConstants.NOTIFICATION_HEADERS); EasyMock.expect(notificationServiceMock.getNotificationHeaders(NotificationTestConstants.NOTIFICATION_ID)) .andReturn(headers); Map<String, List<Notification>> notifications = new HashMap<String, List<Notification>>(); notifications.put(NotificationTestConstants.NOTIFICATION_ID, NotificationTestConstants.NOTIFICATIONS); try { EasyMock.expect(notificationServiceMock.getNotifications(NotificationTestConstants.NOTIFICATION_ID)) .andReturn(notifications); } catch (RemoteOperationException e) { throw new AssertionError("Exception during setup", e); // should never happen } EasyMock.replay(notificationServiceMock); } // note: not used as of RCE 7.0.0 private void createCommunicationServiceMock() { communicationServiceMock = EasyMock.createNiceMock(CommunicationService.class); EasyMock.expect(communicationServiceMock.getRemotableService(EasyMock.eq(NotificationService.class), EasyMock.eq(NotificationTestConstants.REMOTE_INSTANCE_SESSION))).andReturn(notificationServiceMock).anyTimes(); EasyMock.expect(communicationServiceMock.getRemotableService(EasyMock.eq(NotificationService.class), EasyMock.eq(NotificationTestConstants.LOCAL_INSTANCE_SESSION))).andReturn(notificationServiceMock).anyTimes(); EasyMock.replay(communicationServiceMock); } }