diff --git a/apps/vpls/src/test/java/org/onosproject/vpls/VplsIntentTest.java b/apps/vpls/src/test/java/org/onosproject/vpls/VplsIntentTest.java
index 7ee9292..3c10000 100644
--- a/apps/vpls/src/test/java/org/onosproject/vpls/VplsIntentTest.java
+++ b/apps/vpls/src/test/java/org/onosproject/vpls/VplsIntentTest.java
@@ -40,6 +40,7 @@
 import org.onosproject.net.intent.IntentServiceAdapter;
 import org.onosproject.net.intent.IntentUtils;
 import org.onosproject.net.intent.Key;
+import org.onosproject.net.intent.MockIdGenerator;
 import org.onosproject.net.intent.MultiPointToSinglePointIntent;
 import org.onosproject.net.intent.SinglePointToMultiPointIntent;
 import org.onosproject.vpls.api.VplsData;
@@ -73,9 +74,7 @@
 
     @Before
     public void setUp() throws Exception {
-        idGenerator = new TestIdGenerator();
-        Intent.unbindIdGenerator(idGenerator);
-        Intent.bindIdGenerator(idGenerator);
+        MockIdGenerator.cleanBind();
         hostsAvailable = Sets.newHashSet();
         intentService = new TestIntentService();
         interfaceService = createMock(InterfaceService.class);
@@ -86,7 +85,7 @@
 
     @After
     public void tearDown() {
-        Intent.unbindIdGenerator(idGenerator);
+        MockIdGenerator.unbind();
     }
 
     /**
diff --git a/apps/vpls/src/test/java/org/onosproject/vpls/VplsOperationManagerTest.java b/apps/vpls/src/test/java/org/onosproject/vpls/VplsOperationManagerTest.java
index 36ffda9..56f07d6 100644
--- a/apps/vpls/src/test/java/org/onosproject/vpls/VplsOperationManagerTest.java
+++ b/apps/vpls/src/test/java/org/onosproject/vpls/VplsOperationManagerTest.java
@@ -34,6 +34,7 @@
 import org.onosproject.net.intent.IntentData;
 import org.onosproject.net.intent.IntentEvent;
 import org.onosproject.net.intent.IntentState;
+import org.onosproject.net.intent.MockIdGenerator;
 import org.onosproject.store.service.WallClockTimestamp;
 import org.onosproject.vpls.api.VplsData;
 import org.onosproject.vpls.api.VplsOperation;
@@ -58,11 +59,7 @@
 
     @Before
     public void setup() {
-        if (idGenerator == null) {
-            idGenerator = new TestIdGenerator();
-        }
-        Intent.unbindIdGenerator(idGenerator);
-        Intent.bindIdGenerator(idGenerator);
+        MockIdGenerator.cleanBind();
         vplsOperationManager = new VplsOperationManager();
         vplsOperationManager.coreService = new TestCoreService();
         vplsOperationManager.intentService = new TestIntentService();
@@ -76,6 +73,7 @@
 
     @After
     public void tearDown() {
+        MockIdGenerator.unbind();
         vplsOperationManager.deactivate();
     }
 
diff --git a/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java b/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java
index 716b331..a99e07f 100644
--- a/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java
+++ b/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java
@@ -33,7 +33,6 @@
 import org.onosproject.cluster.NodeId;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreServiceAdapter;
-import org.onosproject.core.IdGenerator;
 import org.onosproject.incubator.net.intf.Interface;
 import org.onosproject.incubator.net.intf.InterfaceListener;
 import org.onosproject.incubator.net.intf.InterfaceService;
@@ -76,7 +75,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
 
 /**
@@ -151,8 +149,6 @@
     protected static final NodeId NODE_ID_1 = new NodeId("Node1");
     protected static final NodeId NODE_ID_2 = new NodeId("Node2");
 
-    protected static IdGenerator idGenerator;
-
     protected static final Interface V100H1 =
             new Interface("v100h1", CP1, null, null, VLAN100);
     protected static final Interface V100H2 =
@@ -538,19 +534,6 @@
     }
 
     /**
-     * Represents a fake IdGenerator class for intents.
-     */
-    protected static class TestIdGenerator implements IdGenerator {
-        private final AtomicLong id = new AtomicLong(0);
-
-        @Override
-        public long getNewId() {
-            return id.getAndIncrement();
-        }
-
-    }
-
-    /**
      * Test host service; contains all hosts which already generated.
      *
      */
