blob: f713b8129f5b3334416e1bddb41303668efe69f9 [file] [log] [blame]
/*
* Copyright 2015-present Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
*
* 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.onosproject.ui.topo;
import org.onosproject.net.Annotations;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
import org.onosproject.net.Link;
import org.onosproject.net.LinkKey;
import org.onosproject.net.PortNumber;
import org.onosproject.net.driver.Behaviour;
import org.onosproject.net.provider.ProviderId;
import org.onosproject.ui.AbstractUiTest;
import org.onosproject.ui.model.topo.UiLinkId;
/**
* Base class for unit tests of {@link BiLink} and {@link BiLinkMap}.
*/
public abstract class BiLinkTestBase extends AbstractUiTest {
protected static class FakeLink implements Link {
private final ConnectPoint src;
private final ConnectPoint dst;
FakeLink(ConnectPoint src, ConnectPoint dst) {
this.src = src;
this.dst = dst;
}
@Override
public ConnectPoint src() {
return src;
}
@Override
public ConnectPoint dst() {
return dst;
}
@Override
public Type type() {
return null;
}
@Override
public State state() {
return null;
}
@Override
public boolean isDurable() {
return false;
}
@Override
public boolean isExpected() {
return false;
}
@Override
public Annotations annotations() {
return null;
}
@Override
public ProviderId providerId() {
return null;
}
@Override
public <B extends Behaviour> B as(Class<B> projectionClass) {
return null;
}
@Override
public <B extends Behaviour> boolean is(Class<B> projectionClass) {
return false;
}
}
protected static final DeviceId DEV_A_ID = DeviceId.deviceId("device-A");
protected static final DeviceId DEV_B_ID = DeviceId.deviceId("device-B");
protected static final PortNumber PORT_1 = PortNumber.portNumber(1);
protected static final PortNumber PORT_2 = PortNumber.portNumber(2);
protected static final ConnectPoint CP_A1 = new ConnectPoint(DEV_A_ID, PORT_1);
protected static final ConnectPoint CP_B2 = new ConnectPoint(DEV_B_ID, PORT_2);
protected static final LinkKey KEY_AB = LinkKey.linkKey(CP_A1, CP_B2);
protected static final LinkKey KEY_BA = LinkKey.linkKey(CP_B2, CP_A1);
protected static final Link LINK_AB = new FakeLink(CP_A1, CP_B2);
protected static final Link LINK_BA = new FakeLink(CP_B2, CP_A1);
protected static class ConcreteLink extends BiLink {
public ConcreteLink(LinkKey key, Link link) {
super(key, link);
}
public ConcreteLink(UiLinkId uiLinkId) {
super(uiLinkId);
}
@Override
public LinkHighlight highlight(Enum<?> type) {
return null;
}
}
protected static class ConcreteLinkMap extends BiLinkMap<ConcreteLink> {
@Override
public ConcreteLink create(LinkKey key, Link link) {
return new ConcreteLink(key, link);
}
}
}