diff --git a/src/test/java/net/onrc/onos/api/newintent/TestableIntentService.java b/src/test/java/net/onrc/onos/api/newintent/TestableIntentService.java
index 27921de..ea1b187 100644
--- a/src/test/java/net/onrc/onos/api/newintent/TestableIntentService.java
+++ b/src/test/java/net/onrc/onos/api/newintent/TestableIntentService.java
@@ -1,11 +1,13 @@
 package net.onrc.onos.api.newintent;
 
+import net.onrc.onos.core.newintent.IntentManager;
+
 import java.util.List;
 
 /**
  * Abstraction of an extensible intent service enabled for unit tests.
  */
-public interface TestableIntentService extends IntentService, IntentExtensionService {
+public interface TestableIntentService extends IntentManager {
 
     List<IntentException> getExceptions();
 
diff --git a/src/test/java/net/onrc/onos/core/newintent/IntentManagerRuntimeTest.java b/src/test/java/net/onrc/onos/core/newintent/IntentManagerRuntimeTest.java
new file mode 100644
index 0000000..dfc0fd1
--- /dev/null
+++ b/src/test/java/net/onrc/onos/core/newintent/IntentManagerRuntimeTest.java
@@ -0,0 +1,43 @@
+package net.onrc.onos.core.newintent;
+
+import net.onrc.onos.api.newintent.IntentException;
+import net.onrc.onos.api.newintent.IntentServiceTest;
+import net.onrc.onos.api.newintent.TestableIntentService;
+import net.onrc.onos.core.datagrid.ISharedCollectionsService;
+import net.onrc.onos.core.datastore.hazelcast.DummySharedCollectionsService;
+import org.junit.After;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Suites of test of {@link IntentManagerRuntime} inheriting from {@link IntentServiceTest}.
+ */
+public class IntentManagerRuntimeTest extends IntentServiceTest {
+
+    private TestableIntentManagerRuntime sut;
+
+    @Override
+    protected TestableIntentService createIntentService() {
+        DummySharedCollectionsService collectionsService = new DummySharedCollectionsService();
+        sut = new TestableIntentManagerRuntime(collectionsService);
+        return sut;
+    }
+
+    @After
+    public void tearDown() {
+        sut.destroy();
+    }
+
+    private static class TestableIntentManagerRuntime
+            extends IntentManagerRuntime implements TestableIntentService {
+        public TestableIntentManagerRuntime(ISharedCollectionsService service) {
+            super(service);
+        }
+
+        @Override
+        public List<IntentException> getExceptions() {
+            return Collections.emptyList();
+        }
+    }
+}
