+++ /dev/null
-/*
- * Copyright (c) 2013 Big Switch Networks, Inc.
- *
- * Licensed under the Eclipse Public License, Version 1.0 (the
- * "License"); you may not use this file except in compliance with the
- * License. You may obtain a copy of the License at
- *
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.opendaylight.controller.hosttracker.test;
-
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-
-import org.opendaylight.controller.hosttracker.Entity;
-import org.opendaylight.controller.hosttracker.IDevice;
-import org.opendaylight.controller.hosttracker.IDeviceListener;
-import org.opendaylight.controller.hosttracker.IEntityClass;
-import org.opendaylight.controller.hosttracker.IEntityClassifierService;
-import org.opendaylight.controller.hosttracker.internal.AttachmentPoint;
-import org.opendaylight.controller.hosttracker.internal.Device;
-import org.opendaylight.controller.hosttracker.internal.DeviceManagerImpl;
-import org.opendaylight.controller.sal.core.NodeConnector;
-
-/**
- * Mock device manager useful for unit tests
- *
- * @author readams
- */
-public class MockDeviceManager extends DeviceManagerImpl {
- /**
- * Set a new IEntityClassifier Use this as a quick way to use a particular
- * entity classifier in a single test without having to setup the full
- * FloodlightModuleContext again.
- *
- * @param ecs
- */
- public void setEntityClassifier(IEntityClassifierService ecs) {
- this.entityClassifier = ecs;
- // setSyncServiceIfNotSet(new MockSyncService());
- this.start();
- }
-
- /**
- * Learn a device using the given characteristics.
- *
- * @param macAddress
- * the MAC
- * @param vlan
- * the VLAN (can be null)
- * @param ipv4Address
- * the IP (can be null)
- * @param switchDPID
- * the attachment point switch DPID (can be null)
- * @param switchPort
- * the attachment point switch port (can be null)
- * @param processUpdates
- * if false, will not send updates. Note that this method is not
- * thread safe if this is false
- * @return the device, either new or not
- */
- public IDevice learnEntity(long macAddress, Short vlan,
- Integer ipv4Address, NodeConnector port, boolean processUpdates) {
- List<IDeviceListener> listeners = deviceListeners.getOrderedListeners();
- if (!processUpdates) {
- deviceListeners.clearListeners();
- }
-
- if (vlan != null && vlan.shortValue() <= 0)
- vlan = null;
- if (ipv4Address != null && ipv4Address == 0)
- ipv4Address = null;
- IDevice res = learnDeviceByEntity(new Entity(macAddress, vlan,
- ipv4Address, port, new Date()));
- // Restore listeners
- if (listeners != null) {
- for (IDeviceListener listener : listeners) {
- deviceListeners.addListener("device", listener);
- }
- }
- return res;
- }
-
- @Override
- public void deleteDevice(Device device) {
- super.deleteDevice(device);
- }
-
- /**
- * Learn a device using the given characteristics.
- *
- * @param macAddress
- * the MAC
- * @param vlan
- * the VLAN (can be null)
- * @param ipv4Address
- * the IP (can be null)
- * @param switchDPID
- * the attachment point switch DPID (can be null)
- * @param switchPort
- * the attachment point switch port (can be null)
- * @return the device, either new or not
- */
- public IDevice learnEntity(long macAddress, Short vlan,
- Integer ipv4Address, NodeConnector port) {
- return learnEntity(macAddress, vlan, ipv4Address, port, true);
- }
-
- @Override
- protected Device allocateDevice(Long deviceKey, Entity entity,
- IEntityClass entityClass) {
- return new MockDevice(this, deviceKey, entity, entityClass);
- }
-
- @Override
- protected Device allocateDevice(Long deviceKey, String dhcpClientName,
- List<AttachmentPoint> aps, List<AttachmentPoint> trueAPs,
- Collection<Entity> entities, IEntityClass entityClass) {
- return new MockDevice(this, deviceKey, aps, trueAPs, entities,
- entityClass);
- }
-
- @Override
- protected Device allocateDevice(Device device, Entity entity,
- int insertionpoint) {
- return new MockDevice(device, entity, insertionpoint);
- }
-}