Remove dependency on LinkResourceService from Constraint

Change-Id: Ib9c488331b22eef6769a767c6186ef7d2e8b1501
diff --git a/core/api/src/test/java/org/onosproject/net/intent/IntentTestsMocks.java b/core/api/src/test/java/org/onosproject/net/intent/IntentTestsMocks.java
index 5cc1b4f..f92be7b 100644
--- a/core/api/src/test/java/org/onosproject/net/intent/IntentTestsMocks.java
+++ b/core/api/src/test/java/org/onosproject/net/intent/IntentTestsMocks.java
@@ -16,7 +16,6 @@
 package org.onosproject.net.intent;
 
 import com.google.common.base.MoreObjects;
-import com.google.common.collect.ImmutableSet;
 import org.onlab.util.Bandwidth;
 import org.onosproject.core.DefaultGroupId;
 import org.onosproject.core.GroupId;
@@ -36,20 +35,13 @@
 import org.onosproject.net.flow.instructions.Instruction;
 import org.onosproject.net.flow.instructions.Instructions;
 import org.onosproject.net.flow.instructions.Instructions.MetadataInstruction;
-import org.onosproject.net.resource.ResourceAllocation;
-import org.onosproject.net.resource.ResourceRequest;
-import org.onosproject.net.resource.ResourceType;
-import org.onosproject.net.resource.link.BandwidthResource;
-import org.onosproject.net.resource.link.BandwidthResourceRequest;
-import org.onosproject.net.resource.link.LambdaResource;
-import org.onosproject.net.resource.link.LambdaResourceAllocation;
-import org.onosproject.net.resource.link.LambdaResourceRequest;
-import org.onosproject.net.resource.link.LinkResourceAllocations;
-import org.onosproject.net.resource.link.LinkResourceListener;
-import org.onosproject.net.resource.link.LinkResourceRequest;
-import org.onosproject.net.resource.link.LinkResourceService;
-import org.onosproject.net.resource.link.MplsLabel;
-import org.onosproject.net.resource.link.MplsLabelResourceAllocation;
+import org.onosproject.net.newresource.DiscreteResourceId;
+import org.onosproject.net.newresource.Resource;
+import org.onosproject.net.newresource.ResourceAllocation;
+import org.onosproject.net.newresource.ResourceConsumer;
+import org.onosproject.net.newresource.ResourceId;
+import org.onosproject.net.newresource.ResourceListener;
+import org.onosproject.net.newresource.ResourceService;
 import org.onosproject.net.topology.DefaultTopologyEdge;
 import org.onosproject.net.topology.DefaultTopologyVertex;
 import org.onosproject.net.topology.LinkWeight;
@@ -61,9 +53,9 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -184,145 +176,84 @@
         }
     }
 
-    public static class MockLinkResourceAllocations implements LinkResourceAllocations {
-        @Override
-        public Set<ResourceAllocation> getResourceAllocation(Link link) {
-            return ImmutableSet.of(
-                    new LambdaResourceAllocation(LambdaResource.valueOf(77)),
-                    new MplsLabelResourceAllocation(MplsLabel.valueOf(10)));
+    public static final class MockResourceService implements ResourceService {
+
+        private final double bandwidth;
+
+        public static ResourceService makeBandwidthResourceService(double bandwidth) {
+            return new MockResourceService(bandwidth);
+        }
+
+        private MockResourceService(double bandwidth) {
+            this.bandwidth = bandwidth;
         }
 
         @Override
-        public IntentId intentId() {
+        public List<ResourceAllocation> allocate(ResourceConsumer consumer, List<Resource> resources) {
             return null;
         }
 
         @Override
-        public Collection<Link> links() {
+        public boolean release(List<ResourceAllocation> allocations) {
+            return false;
+        }
+
+        @Override
+        public boolean release(ResourceConsumer consumer) {
+            return false;
+        }
+
+        @Override
+        public List<ResourceAllocation> getResourceAllocations(ResourceId id) {
             return null;
         }
 
         @Override
-        public Set<ResourceRequest> resources() {
+        public <T> Collection<ResourceAllocation> getResourceAllocations(DiscreteResourceId parent, Class<T> cls) {
             return null;
         }
 
         @Override
-        public ResourceType type() {
+        public Collection<ResourceAllocation> getResourceAllocations(ResourceConsumer consumer) {
             return null;
         }
-    }
-
-    public static class MockedAllocationFailure extends RuntimeException { }
-
-    public static class MockResourceService implements LinkResourceService {
-
-        double availableBandwidth = -1.0;
-        int availableLambda = -1;
-
-        /**
-         * Allocates a resource service that will allow bandwidth allocations
-         * up to a limit.
-         *
-         * @param bandwidth available bandwidth limit
-         * @return resource manager for bandwidth requests
-         */
-        public static MockResourceService makeBandwidthResourceService(double bandwidth) {
-            final MockResourceService result = new MockResourceService();
-            result.availableBandwidth = bandwidth;
-            return result;
-        }
-
-        /**
-         * Allocates a resource service that will allow lambda allocations.
-         *
-         * @param lambda Lambda to return for allocation requests. Currently unused
-         * @return resource manager for lambda requests
-         */
-        public static MockResourceService makeLambdaResourceService(int lambda) {
-            final MockResourceService result = new MockResourceService();
-            result.availableLambda = lambda;
-            return result;
-        }
 
         @Override
-        public LinkResourceAllocations requestResources(LinkResourceRequest req) {
-            int lambda = -1;
-            double bandwidth = -1.0;
+        public Set<Resource> getAvailableResources(DiscreteResourceId parent) {
+            return null;
+        }
 
-            for (ResourceRequest resourceRequest : req.resources()) {
-                if (resourceRequest.type() == ResourceType.BANDWIDTH) {
-                    final BandwidthResourceRequest brr = (BandwidthResourceRequest) resourceRequest;
-                    bandwidth = brr.bandwidth().toDouble();
-                } else if (resourceRequest.type() == ResourceType.LAMBDA) {
-                    lambda = 1;
-                }
+        @Override
+        public <T> Set<Resource> getAvailableResources(DiscreteResourceId parent, Class<T> cls) {
+            return null;
+        }
+
+        @Override
+        public <T> Set<T> getAvailableResourceValues(DiscreteResourceId parent, Class<T> cls) {
+            return null;
+        }
+
+        @Override
+        public Set<Resource> getRegisteredResources(DiscreteResourceId parent) {
+            return null;
+        }
+
+        @Override
+        public boolean isAvailable(Resource resource) {
+            if (!resource.isTypeOf(Bandwidth.class)) {
+                return false;
             }
 
-            if (availableBandwidth < bandwidth) {
-                throw new MockedAllocationFailure();
-            }
-            if (lambda > 0 && availableLambda == 0) {
-                throw new MockedAllocationFailure();
-            }
-
-            return new IntentTestsMocks.MockLinkResourceAllocations();
+            Optional<Double> value = resource.valueAs(Double.class);
+            return value.filter(requested -> requested <= bandwidth).isPresent();
         }
 
         @Override
-        public void releaseResources(LinkResourceAllocations allocations) {
-            // Mock
+        public void addListener(ResourceListener listener) {
         }
 
         @Override
-        public LinkResourceAllocations updateResources(LinkResourceRequest req,
-                                                       LinkResourceAllocations oldAllocations) {
-            return null;
-        }
-
-        @Override
-        public Iterable<LinkResourceAllocations> getAllocations() {
-            return ImmutableSet.of(
-                    new IntentTestsMocks.MockLinkResourceAllocations());
-        }
-
-        @Override
-        public Iterable<LinkResourceAllocations> getAllocations(Link link) {
-            return ImmutableSet.of(
-                    new IntentTestsMocks.MockLinkResourceAllocations());
-        }
-
-        @Override
-        public LinkResourceAllocations getAllocations(IntentId intentId) {
-            return new IntentTestsMocks.MockLinkResourceAllocations();
-        }
-
-        @Override
-        public Iterable<ResourceRequest> getAvailableResources(Link link) {
-            final List<ResourceRequest> result = new LinkedList<>();
-            if (availableBandwidth > 0.0) {
-                result.add(new BandwidthResourceRequest(
-                        new BandwidthResource(Bandwidth.bps(availableBandwidth))));
-            }
-            if (availableLambda > 0) {
-                result.add(new LambdaResourceRequest());
-            }
-            return result;
-        }
-
-        @Override
-        public Iterable<ResourceRequest> getAvailableResources(Link link, LinkResourceAllocations allocations) {
-            return null;
-        }
-
-        @Override
-        public void addListener(LinkResourceListener listener) {
-
-        }
-
-        @Override
-        public void removeListener(LinkResourceListener listener) {
-
+        public void removeListener(ResourceListener listener) {
         }
     }