Refactor PCE and PCEP test adapters to remove redundant classes

Change-Id: I407c3dcd42588c03ba7f5c438d0bf61409d64d69
diff --git a/providers/pcep/topology/BUCK b/providers/pcep/topology/BUCK
index dbb033a..2299326 100644
--- a/providers/pcep/topology/BUCK
+++ b/providers/pcep/topology/BUCK
@@ -13,6 +13,13 @@
     '//lib:netty',
 ]
 
+TEST_DEPS = [
+    '//lib:TEST',
+    '//protocols/pcep/server/api:onos-protocols-pcep-server-api-tests',
+    '//apps/pcep-api:onos-apps-pcep-api-tests',
+]
+
 osgi_jar_with_tests (
     deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
 )
diff --git a/providers/pcep/topology/pom.xml b/providers/pcep/topology/pom.xml
index c7f6e46..583615f 100644
--- a/providers/pcep/topology/pom.xml
+++ b/providers/pcep/topology/pom.xml
@@ -43,5 +43,19 @@
              <artifactId>onos-optical-model</artifactId>
              <version>${project.version}</version>
          </dependency>
+         <dependency>
+             <groupId>org.onosproject</groupId>
+             <artifactId>onos-pcep-server-api</artifactId>
+             <version>${project.version}</version>
+             <classifier>tests</classifier>
+             <scope>test</scope>
+         </dependency>
+         <dependency>
+             <groupId>org.onosproject</groupId>
+             <artifactId>onos-apps-pcep-api</artifactId>
+             <version>${project.version}</version>
+             <classifier>tests</classifier>
+             <scope>test</scope>
+         </dependency>
      </dependencies>
 </project>
diff --git a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientAdapter.java b/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientAdapter.java
deleted file mode 100644
index 5174091..0000000
--- a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientAdapter.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * 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.provider.pcep.topology.impl;
-
-import static org.junit.Assert.assertNotNull;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.RejectedExecutionException;
-
-import org.jboss.netty.channel.Channel;
-import org.onosproject.pcep.server.ClientCapability;
-import org.onosproject.pcep.server.PccId;
-import org.onosproject.pcep.server.LspKey;
-import org.onosproject.pcep.server.PcepClient;
-import org.onosproject.pcep.server.PcepSyncStatus;
-import org.onosproject.pcepio.protocol.PcepFactories;
-import org.onosproject.pcepio.protocol.PcepFactory;
-import org.onosproject.pcepio.protocol.PcepMessage;
-import org.onosproject.pcepio.protocol.PcepStateReport;
-import org.onosproject.pcepio.protocol.PcepVersion;
-
-/**
- * Representation of PCEP client adapter.
- */
-public class PcepClientAdapter implements PcepClient {
-
-    private Channel channel;
-    protected String channelId;
-
-    private boolean connected;
-    private PccId pccId;
-    private ClientCapability capability;
-
-    private PcepVersion pcepVersion;
-    private PcepSyncStatus lspDbSyncStatus;
-    private PcepSyncStatus labelDbSyncStatus;
-    private Map<LspKey, Boolean> lspDelegationInfo = new HashMap<>();
-
-    /**
-     * Initialize instance with specified parameters.
-     *
-     * @param pccId PCC id
-     * @param pcepVersion PCEP message version
-     */
-    public void init(PccId pccId, PcepVersion pcepVersion) {
-        this.pccId = pccId;
-        this.pcepVersion = pcepVersion;
-    }
-
-    @Override
-    public final void disconnectClient() {
-        this.channel.close();
-    }
-
-    @Override
-    public final void sendMessage(PcepMessage m) {
-    }
-
-    @Override
-    public final void sendMessage(List<PcepMessage> msgs) {
-        try {
-            PcepMessage pcepMsg = msgs.get(0);
-            assertNotNull("PCEP MSG should be created.", pcepMsg);
-        } catch (RejectedExecutionException e) {
-            throw e;
-        }
-    }
-
-    @Override
-    public final boolean isConnected() {
-        return this.connected;
-    }
-
-    @Override
-    public String channelId() {
-        return channelId;
-    }
-
-    @Override
-    public final PccId getPccId() {
-        return this.pccId;
-    }
-
-    @Override
-    public final String getStringId() {
-        return this.pccId.toString();
-    }
-
-    @Override
-    public final void handleMessage(PcepMessage m) {
-    }
-
-    @Override
-    public boolean isOptical() {
-        return false;
-    }
-
-    @Override
-    public PcepFactory factory() {
-        return PcepFactories.getFactory(pcepVersion);
-    }
-
-    @Override
-    public void setLspDbSyncStatus(PcepSyncStatus syncStatus) {
-        this.lspDbSyncStatus = syncStatus;
-    }
-
-    @Override
-    public PcepSyncStatus lspDbSyncStatus() {
-        return lspDbSyncStatus;
-    }
-
-    @Override
-    public void setLabelDbSyncStatus(PcepSyncStatus syncStatus) {
-        this.labelDbSyncStatus = syncStatus;
-    }
-
-    @Override
-    public PcepSyncStatus labelDbSyncStatus() {
-        return labelDbSyncStatus;
-    }
-
-    @Override
-    public void setCapability(ClientCapability capability) {
-        this.capability = capability;
-    }
-
-    @Override
-    public ClientCapability capability() {
-        return capability;
-    }
-
-    @Override
-    public void addNode(PcepClient pc) {
-    }
-
-    @Override
-    public void deleteNode(PccId pccId) {
-    }
-
-    @Override
-    public void setLspAndDelegationInfo(LspKey lspKey, boolean dFlag) {
-        lspDelegationInfo.put(lspKey, dFlag);
-    }
-
-    @Override
-    public Boolean delegationInfo(LspKey lspKey) {
-        return lspDelegationInfo.get(lspKey);
-    }
-
-    @Override
-    public void initializeSyncMsgList(PccId pccId) {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public List<PcepStateReport> getSyncMsgList(PccId pccId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public void removeSyncMsgList(PccId pccId) {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void addSyncMsgToList(PccId pccId, PcepStateReport rptMsg) {
-        // TODO Auto-generated method stub
-
-    }
-}
diff --git a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientControllerAdapter.java b/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientControllerAdapter.java
deleted file mode 100644
index 5e3a58e..0000000
--- a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepClientControllerAdapter.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * 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.provider.pcep.topology.impl;
-
-
-
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.onlab.packet.IpAddress;
-import org.onosproject.incubator.net.tunnel.DefaultLabelStack;
-import org.onosproject.incubator.net.tunnel.LabelStack;
-import org.onosproject.incubator.net.tunnel.Tunnel;
-import org.onosproject.net.Path;
-import org.onosproject.pcep.server.ClientCapability;
-import org.onosproject.pcep.server.PccId;
-import org.onosproject.pcep.server.PcepClient;
-import org.onosproject.pcep.server.PcepClientController;
-import org.onosproject.pcep.server.PcepClientListener;
-import org.onosproject.pcep.server.PcepEventListener;
-import org.onosproject.pcep.server.PcepNodeListener;
-import org.onosproject.pcep.server.driver.PcepAgent;
-import org.onosproject.pcepio.protocol.PcepError;
-import org.onosproject.pcepio.protocol.PcepErrorInfo;
-import org.onosproject.pcepio.protocol.PcepErrorMsg;
-import org.onosproject.pcepio.protocol.PcepErrorObject;
-import org.onosproject.pcepio.protocol.PcepFactory;
-import org.onosproject.pcepio.protocol.PcepMessage;
-import org.onosproject.pcepio.protocol.PcepVersion;
-import org.onosproject.pcepio.types.PcepValueType;
-
-import com.google.common.collect.Sets;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.onosproject.pcepio.types.PcepErrorDetailInfo.ERROR_TYPE_19;
-import static org.onosproject.pcepio.types.PcepErrorDetailInfo.ERROR_VALUE_5;
-
-/**
- * Representation of PCEP client controller adapter.
- */
-public class PcepClientControllerAdapter implements PcepClientController {
-
-    protected ConcurrentHashMap<PccId, PcepClient> connectedClients =
-            new ConcurrentHashMap<PccId, PcepClient>();
-
-    protected PcepClientAgent agent = new PcepClientAgent();
-    protected Set<PcepClientListener> pcepClientListener = new HashSet<>();
-
-    protected Set<PcepEventListener> pcepEventListener = Sets.newHashSet();
-    public Set<PcepNodeListener> pcepNodeListener = Sets.newHashSet();
-
-    @Activate
-    public void activate() {
-    }
-
-    @Deactivate
-    public void deactivate() {
-    }
-
-    @Override
-    public Collection<PcepClient> getClients() {
-        return connectedClients.values();
-    }
-
-    @Override
-    public PcepClient getClient(PccId pccId) {
-        if (null != connectedClients.get(pccId)) {
-            return connectedClients.get(pccId);
-        }
-        PcepClientAdapter pc = new PcepClientAdapter();
-        if (pccId.ipAddress().equals(IpAddress.valueOf(0xC010103))
-            || pccId.ipAddress().equals(IpAddress.valueOf(0xB6024E22))) {
-            pc.setCapability(new ClientCapability(true, false, false, false, false));
-        } else {
-            pc.setCapability(new ClientCapability(true, true, true, false, false));
-        }
-        pc.init(PccId.pccId(pccId.ipAddress()), PcepVersion.PCEP_1);
-        connectedClients.put(pccId, pc);
-        return pc;
-    }
-
-    @Override
-    public void addListener(PcepClientListener listener) {
-        if (!pcepClientListener.contains(listener)) {
-            this.pcepClientListener.add(listener);
-        }
-    }
-
-    @Override
-    public void addNodeListener(PcepNodeListener listener) {
-        pcepNodeListener.add(listener);
-    }
-
-    @Override
-    public void removeNodeListener(PcepNodeListener listener) {
-        pcepNodeListener.remove(listener);
-    }
-
-    @Override
-    public void removeListener(PcepClientListener listener) {
-        this.pcepClientListener.remove(listener);
-    }
-
-    @Override
-    public void addEventListener(PcepEventListener listener) {
-        pcepEventListener.add(listener);
-    }
-
-    @Override
-    public void removeEventListener(PcepEventListener listener) {
-        pcepEventListener.remove(listener);
-    }
-
-    @Override
-    public void writeMessage(PccId pccId, PcepMessage msg) {
-        this.getClient(pccId).sendMessage(msg);
-    }
-
-    @Override
-    public void processClientMessage(PccId pccId, PcepMessage msg) {
-
-        PcepClient pc = getClient(pccId);
-
-        switch (msg.getType()) {
-        case NONE:
-            break;
-        case OPEN:
-            break;
-        case KEEP_ALIVE:
-            //log.debug("Sending Keep Alive Message  to {" + pccIpAddress.toString() + "}");
-            pc.sendMessage(Collections.singletonList(pc.factory().buildKeepaliveMsg().build()));
-            break;
-        case PATH_COMPUTATION_REQUEST:
-            break;
-        case PATH_COMPUTATION_REPLY:
-            break;
-        case NOTIFICATION:
-            break;
-        case ERROR:
-            break;
-        case CLOSE:
-            //log.debug("Sending Close Message  to { }", pccIpAddress.toString());
-            pc.sendMessage(Collections.singletonList(pc.factory().buildCloseMsg().build()));
-            break;
-        case INITIATE:
-            if (!pc.capability().pcInstantiationCapability()) {
-                pc.sendMessage(Collections.singletonList(getErrMsg(pc.factory(),
-                        ERROR_TYPE_19, ERROR_VALUE_5)));
-            }
-            break;
-        case REPORT:
-            //Only update the listener if respective capability is supported else send PCEP-ERR msg
-            if (pc.capability().statefulPceCapability()) {
-                for (PcepEventListener l : pcepEventListener) {
-                    l.handleMessage(pccId, msg);
-                }
-            } else {
-                // Send PCEP-ERROR message.
-                pc.sendMessage(Collections.singletonList(getErrMsg(pc.factory(),
-                        ERROR_TYPE_19, ERROR_VALUE_5)));
-            }
-            break;
-        case UPDATE:
-            if (!pc.capability().statefulPceCapability()) {
-                pc.sendMessage(Collections.singletonList(getErrMsg(pc.factory(),
-                       ERROR_TYPE_19, ERROR_VALUE_5)));
-            }
-            break;
-        case LABEL_UPDATE:
-            if (!pc.capability().pceccCapability()) {
-                pc.sendMessage(Collections.singletonList(getErrMsg(pc.factory(),
-                        ERROR_TYPE_19, ERROR_VALUE_5)));
-            }
-            break;
-        case MAX:
-            break;
-        case END:
-            break;
-        default:
-            break;
-        }
-    }
-
-    @Override
-    public void closeConnectedClients() {
-        PcepClient pc;
-        for (PccId id : connectedClients.keySet()) {
-            pc = getClient(id);
-            pc.disconnectClient();
-        }
-    }
-
-    private PcepErrorMsg getErrMsg(PcepFactory factory, byte errorType, byte errorValue) {
-        LinkedList<PcepError> llPcepErr = new LinkedList<>();
-
-        LinkedList<PcepErrorObject> llerrObj = new LinkedList<>();
-        PcepErrorMsg errMsg;
-
-        PcepErrorObject errObj = factory.buildPcepErrorObject().setErrorValue(errorValue).setErrorType(errorType)
-                .build();
-
-        llerrObj.add(errObj);
-        PcepError pcepErr = factory.buildPcepError().setErrorObjList(llerrObj).build();
-
-        llPcepErr.add(pcepErr);
-
-        PcepErrorInfo errInfo = factory.buildPcepErrorInfo().setPcepErrorList(llPcepErr).build();
-
-        errMsg = factory.buildPcepErrorMsg().setPcepErrorInfo(errInfo).build();
-        return errMsg;
-    }
-
-    /**
-     * Implementation of an Pcep Agent which is responsible for
-     * keeping track of connected clients and the state in which
-     * they are.
-     */
-    public class PcepClientAgent implements PcepAgent {
-
-        @Override
-        public boolean addConnectedClient(PccId pccId, PcepClient pc) {
-
-            if (connectedClients.get(pccId) != null) {
-                return false;
-            } else {
-                connectedClients.put(pccId, pc);
-                for (PcepClientListener l : pcepClientListener) {
-                    l.clientConnected(pccId);
-                }
-                return true;
-            }
-        }
-
-        @Override
-        public boolean validActivation(PccId pccId) {
-            if (connectedClients.get(pccId) == null) {
-                //log.error("Trying to activate client but is not in "
-                //        + "connected switches: pccIp {}. Aborting ..", pccIpAddress.toString());
-                return false;
-            }
-
-            return true;
-        }
-
-        @Override
-        public void removeConnectedClient(PccId pccId) {
-            connectedClients.remove(pccId);
-            for (PcepClientListener l : pcepClientListener) {
-                //log.warn("removal for {}", pccIpAddress.toString());
-                l.clientDisconnected(pccId);
-            }
-        }
-
-        @Override
-        public void processPcepMessage(PccId pccId, PcepMessage m) {
-            processClientMessage(pccId, m);
-        }
-
-        @Override
-        public void addNode(PcepClient pc) {
-            for (PcepNodeListener l : pcepNodeListener) {
-                l.addDevicePcepConfig(pc);
-            }
-        }
-
-        @Override
-        public void deleteNode(PccId pccId) {
-            for (PcepNodeListener l : pcepNodeListener) {
-                l.deleteDevicePcepConfig(pccId);
-            }
-        }
-
-        @Override
-        public boolean analyzeSyncMsgList(PccId pccId) {
-            // TODO Auto-generated method stub
-            return false;
-        }
-    }
-
-    @Override
-    public LabelStack computeLabelStack(Path path) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public LinkedList<PcepValueType> createPcepLabelStack(DefaultLabelStack labelStack, Path path) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public Map<String, List<String>> getPcepExceptions() {
-        return null;
-    }
-
-    @Override
-    public Map<Integer, Integer> getPcepErrorMsg() {
-        return null;
-    }
-
-    @Override
-    public Map<String, String> getPcepSessionMap() {
-        return null;
-    }
-
-    @Override
-    public Map<String, Byte> getPcepSessionIdMap() {
-        return null;
-    }
-
-    @Override
-    public void peerErrorMsg(String peerId, Integer errorType, Integer errValue) {
-        return;
-    }
-
-
-    @Override
-    public boolean allocateLocalLabel(Tunnel tunnel) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-}
diff --git a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepControllerAdapter.java b/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepControllerAdapter.java
deleted file mode 100644
index 086bbf1..0000000
--- a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepControllerAdapter.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * 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.provider.pcep.topology.impl;
-
-import org.onosproject.net.DeviceId;
-import org.onosproject.pcep.api.PcepController;
-import org.onosproject.pcep.api.PcepDpid;
-import org.onosproject.pcep.api.PcepLinkListener;
-import org.onosproject.pcep.api.PcepSwitch;
-import org.onosproject.pcep.api.PcepSwitchListener;
-import org.onosproject.pcep.api.PcepTunnel;
-import org.onosproject.pcep.api.PcepTunnelListener;
-
-/**
- * Implementation of PCEP controller.
- */
-public class PcepControllerAdapter implements PcepController {
-
-    @Override
-    public Iterable<PcepSwitch> getSwitches() {
-        return null;
-    }
-
-    @Override
-    public PcepSwitch getSwitch(PcepDpid did) {
-        return null;
-    }
-
-    @Override
-    public void addListener(PcepSwitchListener listener) {
-
-    }
-
-    @Override
-    public void removeListener(PcepSwitchListener listener) {
-    }
-
-    @Override
-    public void addLinkListener(PcepLinkListener listener) {
-    }
-
-    @Override
-    public void removeLinkListener(PcepLinkListener listener) {
-    }
-
-    @Override
-    public void addTunnelListener(PcepTunnelListener listener) {
-    }
-
-    @Override
-    public void removeTunnelListener(PcepTunnelListener listener) {
-    }
-
-    @Override
-    public PcepTunnel applyTunnel(DeviceId srcDid, DeviceId dstDid, long srcPort, long dstPort, long bandwidth,
-                                  String name) {
-        return null;
-    }
-
-    @Override
-    public Boolean deleteTunnel(String id) {
-        return null;
-    }
-
-    @Override
-    public Boolean updateTunnelBandwidth(String id, long bandwidth) {
-        return null;
-    }
-
-    @Override
-    public void getTunnelStatistics(String pcepTunnelId) {
-
-    }
-}
diff --git a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProviderTest.java b/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProviderTest.java
index 991122d..84231e0 100644
--- a/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProviderTest.java
+++ b/providers/pcep/topology/src/test/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProviderTest.java
@@ -12,15 +12,10 @@
  */
 package org.onosproject.provider.pcep.topology.impl;
 
-import static org.onosproject.net.Link.State.ACTIVE;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -50,18 +45,24 @@
 import org.onosproject.net.link.LinkProviderService;
 import org.onosproject.net.provider.ProviderId;
 import org.onosproject.pcep.api.DeviceCapability;
+import org.onosproject.pcep.api.PcepControllerAdapter;
 import org.onosproject.pcep.server.ClientCapability;
 import org.onosproject.pcep.server.PccId;
 import org.onosproject.pcep.server.PcepClient;
+import org.onosproject.pcep.server.PcepClientControllerAdapter;
 import org.onosproject.pcep.server.PcepNodeListener;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.hamcrest.core.IsNull.nullValue;
+import static org.onosproject.net.Link.State.ACTIVE;
 /**
  * Test for PCEP topology provider.
  */