diff --git a/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/ControlPlaneManagerTest.java b/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/ControlPlaneManagerTest.java
new file mode 100644
index 0000000..3fc6675
--- /dev/null
+++ b/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/ControlPlaneManagerTest.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.cpman.impl;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onosproject.core.CoreServiceAdapter;
+import org.onosproject.net.device.DeviceServiceAdapter;
+
+/**
+ * Set of tests of the ONOS application component.
+ */
+public class ControlPlaneManagerTest {
+
+    private ControlPlaneManager cpMan;
+
+    /**
+     * Sets up the services required by the CPMan application.
+     */
+    @Before
+    public void setUp() {
+        cpMan = new ControlPlaneManager();
+        cpMan.coreService = new CoreServiceAdapter();
+        cpMan.deviceService = new DeviceServiceAdapter();
+        cpMan.activate();
+    }
+
+    /**
+     * Tears down the CPMan application.
+     */
+    @After
+    public void tearDown() {
+        cpMan.deactivate();
+    }
+
+    /**
+     * Tests the control metric aggregating function.
+     *
+     * @throws Exception if metric collection fails.
+     */
+    @Test
+    public void testMetricsAggregation() throws Exception {
+    }
+
+    /**
+     * Tests the control metric collecting function.
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testMetricsCollection() throws Exception {
+    }
+}
\ No newline at end of file
