[ONOS-4170] [ONOS-4163] PCE APP side changes : PceManager (code + UT)

Change-Id: I43db98b2fa3c5930b989d4fa3e2c00f7fa65c5ca
diff --git a/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/PathComputationTest.java b/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/PathComputationTest.java
index 446aea2..c4040ed 100644
--- a/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/PathComputationTest.java
+++ b/apps/pce/app/src/test/java/org/onosproject/pce/pceservice/PathComputationTest.java
@@ -96,20 +96,20 @@
     private final MockDeviceService deviceService = new MockDeviceService();
     private PceManager pceManager = new PceManager();
     public static ProviderId providerId = new ProviderId("pce", "foo");
-    private static final String DEVICE1 = "D001";
-    private static final String DEVICE2 = "D002";
-    private static final String DEVICE3 = "D003";
-    private static final String DEVICE4 = "D004";
-    private static final String DEVICE5 = "D005";
+    public static final String DEVICE1 = "D001";
+    public static final String DEVICE2 = "D002";
+    public static final String DEVICE3 = "D003";
+    public static final String DEVICE4 = "D004";
+    public static final String DEVICE5 = "D005";
     public static final String PCEPDEVICE1 = "PD001";
     public static final String PCEPDEVICE2 = "PD002";
     public static final String PCEPDEVICE3 = "PD003";
     public static final String PCEPDEVICE4 = "PD004";
-    private static final TopologyVertex D1 = new DefaultTopologyVertex(DeviceId.deviceId("D001"));
-    private static final TopologyVertex D2 = new DefaultTopologyVertex(DeviceId.deviceId("D002"));
-    private static final TopologyVertex D3 = new DefaultTopologyVertex(DeviceId.deviceId("D003"));
-    private static final TopologyVertex D4 = new DefaultTopologyVertex(DeviceId.deviceId("D004"));
-    private static final TopologyVertex D5 = new DefaultTopologyVertex(DeviceId.deviceId("D005"));
+    public static final TopologyVertex D1 = new DefaultTopologyVertex(DeviceId.deviceId("D001"));
+    public static final TopologyVertex D2 = new DefaultTopologyVertex(DeviceId.deviceId("D002"));
+    public static final TopologyVertex D3 = new DefaultTopologyVertex(DeviceId.deviceId("D003"));
+    public static final TopologyVertex D4 = new DefaultTopologyVertex(DeviceId.deviceId("D004"));
+    public static final TopologyVertex D5 = new DefaultTopologyVertex(DeviceId.deviceId("D005"));
     private static final String ANNOTATION_COST = "cost";
     private static final String ANNOTATION_TE_COST = "teCost";
     private static final String UNKNOWN = "unknown";
@@ -130,7 +130,7 @@
      *
      * @return graph path search algorithm
      */
-    private AbstractGraphPathSearch<TopologyVertex, TopologyEdge> graphSearch() {
+    public static AbstractGraphPathSearch<TopologyVertex, TopologyEdge> graphSearch() {
         return new DijkstraGraphSearch<>();
     }
 
@@ -143,7 +143,7 @@
      * @param port2 destination port
      * @return link
      */
-    private Link addLink(String device, long port, String device2, long port2, boolean setCost, int value) {
+    public static Link addLink(String device, long port, String device2, long port2, boolean setCost, int value) {
         ConnectPoint src = new ConnectPoint(DeviceId.deviceId(device), PortNumber.portNumber(port));
         ConnectPoint dst = new ConnectPoint(DeviceId.deviceId(device2), PortNumber.portNumber(port2));
         Link curLink;
@@ -256,19 +256,37 @@
         }
     }
 
-    private Path networkPath(org.onlab.graph.Path<TopologyVertex, TopologyEdge> path) {
+    /**
+     * Returns the path in Path object format.
+     */
+    public static Path networkPath(org.onlab.graph.Path<TopologyVertex, TopologyEdge> path) {
         List<Link> links = path.edges().stream().map(TopologyEdge::link).collect(Collectors.toList());
         return new DefaultPath(CORE_PROVIDER_ID, links, path.cost());
     }
 
     /**
-     * Test Resource service for path computation.
+     * Tests Resource service for path computation.
      */
-    private class MockPathResourceService extends ResourceServiceAdapter {
+    public class MockPathResourceService extends ResourceServiceAdapter {
         private final Map<Resource, ResourceConsumer> assignment = new HashMap<>();
         private Map<ResourceId, List<ResourceAllocation>> resourcesAllocations = new HashMap<>();
 
         @Override
+        public Optional<ResourceAllocation> allocate(ResourceConsumer consumer, Resource resources) {
+            List<ResourceAllocation> allocations = allocate(consumer, ImmutableList.of(resources));
+            if (allocations.isEmpty()) {
+                return Optional.empty();
+            }
+
+            assert allocations.size() == 1;
+            ResourceAllocation allocation = allocations.get(0);
+            assert allocation.resource().equals(resources);
+
+            // cast is ensured by the assertions above
+            return Optional.of(allocation);
+        }
+
+        @Override
         public List<ResourceAllocation> allocate(ResourceConsumer consumer, List<Resource> resources) {
             for (Resource resource: resources) {
                 if (resource instanceof ContinuousResource) {