/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.communication.testutils; import de.rcenvironment.core.communication.transport.spi.NetworkTransportProvider; /** * Represents a simulated communication bundle that provides consistently configured service instances. Intended for use in integration * tests. * * @author Robert Mischke */ public interface VirtualCommunicationBundle { /** * Simulates the activation of the virtual bundle. Internally, this triggers "activate()" calls on the individual OSGi-DS components, * similar to the actual lifecycle. */ void activate(); /** * Allows unit or integration tests to prevent {@link #startUpNetwork()} from being called automatically as part of the * {@link #activate()} method. * * @param autoStartNetworkOnActivation the new value; default is "true" */ void setAutoStartNetworkOnActivation(boolean autoStartNetworkOnActivation); /** * Returns an activated service instance that was bound to the given service interface. * * @param <T> the service interface class * @param clazz the service interface class * @return the service instance, or null if none exists */ <T> T getService(Class<T> clazz); /** * Allows injection of service instances; useful for remote service call testing. * * @param <T> the service interface class * @param clazz the service interface class * @param implementation the service instance */ <T> void injectService(Class<T> clazz, T implementation); /** * Convenience method to register a {@link NetworkTransportProvider}. * * @param newProvider the {@link NetworkTransportProvider} instance to register */ void registerNetworkTransportProvider(NetworkTransportProvider newProvider); }