diff --git a/src/test/java/org/onosproject/aaa/AaaIntegrationTest.java b/src/test/java/org/opencord/aaa/AaaIntegrationTest.java
similarity index 99%
rename from src/test/java/org/onosproject/aaa/AaaIntegrationTest.java
rename to src/test/java/org/opencord/aaa/AaaIntegrationTest.java
index 359d76b..cbdc000 100644
--- a/src/test/java/org/onosproject/aaa/AaaIntegrationTest.java
+++ b/src/test/java/org/opencord/aaa/AaaIntegrationTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.aaa;
+package org.opencord.aaa;
 
 import org.junit.Before;
 import org.junit.Ignore;
diff --git a/src/test/java/org/onosproject/aaa/AaaManagerTest.java b/src/test/java/org/opencord/aaa/AaaManagerTest.java
similarity index 99%
rename from src/test/java/org/onosproject/aaa/AaaManagerTest.java
rename to src/test/java/org/opencord/aaa/AaaManagerTest.java
index 8df7da5..241e57e 100644
--- a/src/test/java/org/onosproject/aaa/AaaManagerTest.java
+++ b/src/test/java/org/opencord/aaa/AaaManagerTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.aaa;
+package org.opencord.aaa;
 
 import com.google.common.base.Charsets;
 import org.junit.After;
diff --git a/src/test/java/org/onosproject/aaa/AaaTestBase.java b/src/test/java/org/opencord/aaa/AaaTestBase.java
similarity index 99%
rename from src/test/java/org/onosproject/aaa/AaaTestBase.java
rename to src/test/java/org/opencord/aaa/AaaTestBase.java
index db369f6..5a38999 100644
--- a/src/test/java/org/onosproject/aaa/AaaTestBase.java
+++ b/src/test/java/org/opencord/aaa/AaaTestBase.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.aaa;
+package org.opencord.aaa;
 
 import org.onlab.packet.BasePacket;
 import org.onlab.packet.EAP;
diff --git a/src/test/java/org/onosproject/aaa/StateMachineTest.java b/src/test/java/org/opencord/aaa/StateMachineTest.java
similarity index 75%
rename from src/test/java/org/onosproject/aaa/StateMachineTest.java
rename to src/test/java/org/opencord/aaa/StateMachineTest.java
index 19e6fef..6626537 100644
--- a/src/test/java/org/onosproject/aaa/StateMachineTest.java
+++ b/src/test/java/org/opencord/aaa/StateMachineTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  *
  */
-package org.onosproject.aaa;
+package org.opencord.aaa;
 
 import org.junit.After;
 import org.junit.Assert;
@@ -51,19 +51,19 @@
      */
     public void basic() throws StateMachineException {
         System.out.println("======= BASIC =======.");
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
+        assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
 
         stateMachine.start();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
 
         stateMachine.requestAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
+        assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
 
         stateMachine.authorizeAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_AUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_AUTHORIZED);
 
         stateMachine.logoff();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
+        assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
     }
 
     @Test
@@ -73,19 +73,19 @@
     public void testIdleState() throws StateMachineException {
         System.out.println("======= IDLE STATE TEST =======.");
         stateMachine.requestAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
+        assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
 
         stateMachine.authorizeAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
+        assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
 
         stateMachine.denyAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
+        assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
 
         stateMachine.logoff();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
+        assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
 
         stateMachine.start();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
     }
 
     @Test
@@ -97,19 +97,19 @@
         stateMachine.start();
 
         stateMachine.authorizeAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
 
         stateMachine.denyAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
 
         stateMachine.logoff();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
 
         stateMachine.start();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
 
         stateMachine.requestAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
+        assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
     }
 
     @Test
@@ -123,19 +123,19 @@
         stateMachine.requestAccess();
 
         stateMachine.logoff();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
+        assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
 
         stateMachine.start();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
+        assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
 
         stateMachine.requestAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
+        assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
 
         stateMachine.authorizeAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_AUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_AUTHORIZED);
 
         stateMachine.denyAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_AUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_AUTHORIZED);
     }
 
     @Test
@@ -149,19 +149,19 @@
         stateMachine.requestAccess();
 
         stateMachine.logoff();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
+        assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
 
         stateMachine.start();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
+        assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
 
         stateMachine.requestAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
+        assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
 
         stateMachine.denyAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
 
         stateMachine.authorizeAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
     }
 
     @Test
@@ -175,19 +175,19 @@
         stateMachine.authorizeAccess();
 
         stateMachine.start();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_STARTED);
 
         stateMachine.requestAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
+        assertEquals(stateMachine.state(), StateMachine.STATE_PENDING);
 
         stateMachine.authorizeAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_AUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_AUTHORIZED);
 
         stateMachine.denyAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_AUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_AUTHORIZED);
 
         stateMachine.logoff();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
+        assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
     }
 
     @Test
@@ -201,19 +201,19 @@
         stateMachine.denyAccess();
 
         stateMachine.start();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
 
         stateMachine.requestAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
 
         stateMachine.authorizeAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
 
         stateMachine.denyAccess();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
+        assertEquals(stateMachine.state(), StateMachine.STATE_UNAUTHORIZED);
 
         stateMachine.logoff();
-        Assert.assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
+        assertEquals(stateMachine.state(), StateMachine.STATE_IDLE);
     }
 
 
