/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.communication.common.impl; import static org.junit.Assert.assertEquals; import org.junit.Test; import de.rcenvironment.core.communication.common.CommonIdBase; import de.rcenvironment.core.communication.common.IdentifierException; import de.rcenvironment.core.communication.common.InstanceNodeId; import de.rcenvironment.core.communication.common.InstanceNodeSessionId; import de.rcenvironment.toolkit.utils.common.IdGeneratorType; /** * {@link NodeIdentifierServiceImpl} test. * * @author Robert Mischke */ public class NodeIdentifierServiceImplTest { private final NodeIdentifierServiceImpl service = new NodeIdentifierServiceImpl(IdGeneratorType.FAST); /** * Tests that associated display names are shared between equal ids as expected. * * @throws IdentifierException not expected */ @Test public void testDisplayNameSharing() throws IdentifierException { final InstanceNodeId instanceId1 = service.generateInstanceNodeId(); final InstanceNodeId instanceId1Clone = service.parseInstanceNodeIdString(instanceId1.getInstanceNodeIdString()); final InstanceNodeId instanceId2 = service.generateInstanceNodeId(); assertEquals(CommonIdBase.DEFAULT_DISPLAY_NAME, instanceId1.getAssociatedDisplayName()); assertEquals(CommonIdBase.DEFAULT_DISPLAY_NAME, instanceId1Clone.getAssociatedDisplayName()); assertEquals(CommonIdBase.DEFAULT_DISPLAY_NAME, instanceId2.getAssociatedDisplayName()); final String testName = "name1"; service.associateDisplayName(instanceId1, testName); assertEquals(testName, instanceId1.getAssociatedDisplayName()); assertEquals(testName, instanceId1Clone.getAssociatedDisplayName()); // the other id should not have been affected assertEquals(CommonIdBase.DEFAULT_DISPLAY_NAME, instanceId2.getAssociatedDisplayName()); } /** * Tests that display names associated with instance session ids are also set for the matching instance ids. * * @throws IdentifierException not expected */ @Test public void testTransitiveDisplayNameSetting() throws IdentifierException { final InstanceNodeId instanceId1 = service.generateInstanceNodeId(); final InstanceNodeSessionId instanceId1Session = service.generateInstanceNodeSessionId(instanceId1); final InstanceNodeId instanceId2 = service.generateInstanceNodeId(); assertEquals(CommonIdBase.DEFAULT_DISPLAY_NAME, instanceId1.getAssociatedDisplayName()); assertEquals(CommonIdBase.DEFAULT_DISPLAY_NAME, instanceId1Session.getAssociatedDisplayName()); assertEquals(CommonIdBase.DEFAULT_DISPLAY_NAME, instanceId2.getAssociatedDisplayName()); final String testName1 = "name1"; final String testName2 = "name2"; final String testName3 = "name3"; service.associateDisplayName(instanceId1Session, testName1); // note: setting for the instance *session* id // sanity check assertEquals(testName1, instanceId1Session.getAssociatedDisplayName()); // now test the transitive setting assertEquals(testName1, instanceId1.getAssociatedDisplayName()); // the other id should not have been affected assertEquals(CommonIdBase.DEFAULT_DISPLAY_NAME, instanceId2.getAssociatedDisplayName()); // replace the name for the instanceId only; it should not propagate back the the session id service.associateDisplayName(instanceId1, testName2); // note: setting for the *instance* id assertEquals(testName1, instanceId1Session.getAssociatedDisplayName()); assertEquals(testName2, instanceId1.getAssociatedDisplayName()); service.associateDisplayName(instanceId1Session, testName3); // note: setting for the instance *session* id assertEquals(testName3, instanceId1Session.getAssociatedDisplayName()); assertEquals(testName3, instanceId1.getAssociatedDisplayName()); } }