Moved default flows logic into the PacketManager.

This prevents us duplicating code in each of the apps and allows us to manage
packet requests better in the future.

Change-Id: I5656b2f0f3cecd3e42fe7b4a0a5ab7cb6582bb25
diff --git a/core/net/src/test/java/org/onosproject/net/proxyarp/impl/ProxyArpManagerTest.java b/core/net/src/test/java/org/onosproject/net/proxyarp/impl/ProxyArpManagerTest.java
index c364d8b..a80f0a1 100644
--- a/core/net/src/test/java/org/onosproject/net/proxyarp/impl/ProxyArpManagerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/proxyarp/impl/ProxyArpManagerTest.java
@@ -18,7 +18,6 @@
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
 import static org.easymock.EasyMock.replay;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
@@ -33,9 +32,13 @@
 
 import org.junit.Before;
 import org.junit.Test;
+import org.onlab.packet.ARP;
+import org.onlab.packet.Ethernet;
+import org.onlab.packet.Ip4Address;
+import org.onlab.packet.Ip4Prefix;
+import org.onlab.packet.MacAddress;
+import org.onlab.packet.VlanId;
 import org.onosproject.core.ApplicationId;
-import org.onosproject.core.CoreService;
-import org.onosproject.core.DefaultApplicationId;
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.DefaultHost;
 import org.onosproject.net.Device;
@@ -48,8 +51,7 @@
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.device.DeviceListener;
 import org.onosproject.net.device.DeviceService;
-import org.onosproject.net.flow.FlowRule;
-import org.onosproject.net.flow.FlowRuleService;
+import org.onosproject.net.flow.TrafficSelector;
 import org.onosproject.net.flow.instructions.Instruction;
 import org.onosproject.net.flow.instructions.Instructions.OutputInstruction;
 import org.onosproject.net.host.HostService;
@@ -58,15 +60,10 @@
 import org.onosproject.net.link.LinkListener;
 import org.onosproject.net.link.LinkService;
 import org.onosproject.net.packet.OutboundPacket;
+import org.onosproject.net.packet.PacketPriority;
 import org.onosproject.net.packet.PacketProcessor;
 import org.onosproject.net.packet.PacketService;
 import org.onosproject.net.provider.ProviderId;
-import org.onlab.packet.ARP;
-import org.onlab.packet.Ethernet;
-import org.onlab.packet.Ip4Address;
-import org.onlab.packet.Ip4Prefix;
-import org.onlab.packet.MacAddress;
-import org.onlab.packet.VlanId;
 
 import com.google.common.collect.Sets;
 
@@ -102,14 +99,9 @@
     private ProxyArpManager proxyArp;
 
     private TestPacketService packetService;
-
-    private CoreService coreService;
     private DeviceService deviceService;
-    private FlowRuleService flowRuleService;
     private LinkService linkService;
     private HostService hostService;
-    private ApplicationId appId = new DefaultApplicationId((short) 100,
-                "org.onosproject.net.proxyarp");
 
     @Before
     public void setUp() throws Exception {
@@ -123,9 +115,7 @@
         proxyArp.hostService = hostService;
 
         createTopology();
-        proxyArp.coreService = coreService;
         proxyArp.deviceService = deviceService;
-        proxyArp.flowRuleService = flowRuleService;
         proxyArp.linkService = linkService;
 
         proxyArp.activate();
@@ -142,16 +132,6 @@
      * addresses configured.
      */
     private void createTopology() {
-        coreService = createMock(CoreService.class);
-        expect(coreService.registerApplication(appId.name()))
-            .andReturn(appId).anyTimes();
-        replay(coreService);
-
-        flowRuleService = createMock(FlowRuleService.class);
-        flowRuleService.applyFlowRules(anyObject(FlowRule.class));
-        expectLastCall().anyTimes();
-        replay(flowRuleService);
-
         deviceService = createMock(DeviceService.class);
         linkService = createMock(LinkService.class);
 
@@ -602,5 +582,10 @@
         public void emit(OutboundPacket packet) {
             packets.add(packet);
         }
+
+        @Override
+        public void requestPackets(TrafficSelector selector,
+                                   PacketPriority priority, ApplicationId appId) {
+        }
     }
 }