/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.notification.internal; import java.util.Set; import junit.framework.TestCase; import de.rcenvironment.core.notification.Notification; import de.rcenvironment.core.notification.NotificationHeader; import de.rcenvironment.core.notification.NotificationSubscriber; import de.rcenvironment.core.notification.NotificationTestConstants; /** * Test cases for the class {@link NotificationTopic}. * * @author Andre Nurzenski * @author Doreen Seider * @author Robert Mischke (8.0.0 id adaptations) */ public class NotificationTopicTest extends TestCase { /** * A text for a notification. */ private static final String NOTIFICATION_TEXT = "This is a notification for the tests."; /** * The class under test. */ private NotificationTopic myPublisher = null; /** * A publisher name for the tests. */ private String myPublisherName = null; /** * A notification for the tests. */ private Notification myNotification = null; /** * A header for the tests. */ private NotificationHeader myHeader = null; /** * A subscriber for the tests. */ private NotificationSubscriber myNotificationSubscriber = null; /** * Initializes the test class. * * @throws Exception if an error occur. */ public NotificationTopicTest() throws Exception { myPublisherName = NotificationTestConstants.NOTIFICATION_ID; myNotification = new Notification(myPublisherName, NotificationTestConstants.NOTIFICATION_EDITION, NotificationTestConstants.LOCAL_INSTANCE_SESSION, NOTIFICATION_TEXT); myHeader = myNotification.getHeader(); } @Override protected void setUp() throws Exception { super.setUp(); myPublisher = new NotificationTopic(myPublisherName); } @Override protected void tearDown() throws Exception { super.tearDown(); myPublisher = null; } /* * #################### Test for success #################### */ /** * Test if the method can be called. */ public final void testAddForSuccess() { myPublisher.add(myNotificationSubscriber); } /** * Test if the method can be called. */ public final void testRemoveForSuccess() { myPublisher.remove(myNotificationSubscriber); } /** * Test if the method can be called. */ public final void testGetNameForSuccess() { myPublisher.getName(); } /** * Test if the method can be called. */ public final void testGetSubscriberForSuccess() { myPublisher.getSubscribers(); } /** * Test if the method can be called. */ public final void testEqualsForSuccess() { NotificationTopic publisher = new NotificationTopic(myPublisherName); myPublisher.equals(publisher); myPublisher.equals(myHeader); } /** * Test if the method can be called. */ public final void testHashCodeForSuccess() { NotificationTopic publisher = new NotificationTopic(myPublisherName); publisher.hashCode(); } /* * #################### Test for sanity #################### */ /** * Test the name from the associated publisher can be obtained. */ public final void testGetNameForSanity() { String name = myPublisher.getName(); assertNotNull(name); assertEquals(name, myPublisherName); } /** * Test if the local subscribers can be obtained. */ public final void testGetLocalSubscriberForSanity() { myPublisher.add(myNotificationSubscriber); Set<NotificationSubscriber> subscribers = myPublisher.getSubscribers(); assertNotNull(subscribers); assertEquals(1, subscribers.size()); myPublisher.remove(myNotificationSubscriber); subscribers = myPublisher.getSubscribers(); assertNotNull(subscribers); assertEquals(0, subscribers.size()); } /** * Test if two publishers are equal. */ public final void testEqualsForSanity() { NotificationTopic publisher = new NotificationTopic(myPublisherName); assertTrue(myPublisher.equals(publisher)); publisher = new NotificationTopic("myPublisherName"); assertFalse(myPublisher.equals(publisher)); } }