diff --git a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/ChannelAdapter.java b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/ChannelAdapter.java
similarity index 98%
rename from protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/ChannelAdapter.java
rename to protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/ChannelAdapter.java
index 1900d24..ebed442 100644
--- a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/ChannelAdapter.java
+++ b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/ChannelAdapter.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.lisp.ctl;
+package org.onosproject.lisp.ctl.impl;
 
 import io.netty.buffer.ByteBufAllocator;
 import io.netty.channel.Channel;
diff --git a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/ChannelHandlerContextAdapter.java b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/ChannelHandlerContextAdapter.java
similarity index 98%
rename from protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/ChannelHandlerContextAdapter.java
rename to protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/ChannelHandlerContextAdapter.java
index 8d50ea3..b76c7e6 100644
--- a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/ChannelHandlerContextAdapter.java
+++ b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/ChannelHandlerContextAdapter.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.lisp.ctl;
+package org.onosproject.lisp.ctl.impl;
 
 
 import io.netty.buffer.ByteBufAllocator;
diff --git a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMappingDatabaseTest.java b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMappingDatabaseTest.java
similarity index 99%
rename from protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMappingDatabaseTest.java
rename to protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMappingDatabaseTest.java
index 8b60e2e..2c2142a 100644
--- a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMappingDatabaseTest.java
+++ b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMappingDatabaseTest.java
@@ -13,17 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.lisp.ctl;
+package org.onosproject.lisp.ctl.impl;
 
 import com.google.common.collect.ImmutableList;
 import org.junit.Before;
 import org.junit.Test;
 import org.onlab.packet.IpAddress;
-import org.onosproject.lisp.msg.protocols.DefaultLispLocatorRecord.DefaultLocatorRecordBuilder;
 import org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.DefaultMapRecordBuilder;
 import org.onosproject.lisp.msg.protocols.LispEidRecord;
 import org.onosproject.lisp.msg.protocols.LispLocatorRecord;
 import org.onosproject.lisp.msg.protocols.LispMapRecord;
+import org.onosproject.lisp.msg.protocols.DefaultLispLocatorRecord.DefaultLocatorRecordBuilder;
 import org.onosproject.lisp.msg.protocols.LispMapRecord.MapRecordBuilder;
 import org.onosproject.lisp.msg.types.LispIpv4Address;
 
diff --git a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMessageAdapter.java b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageAdapter.java
similarity index 97%
rename from protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMessageAdapter.java
rename to protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageAdapter.java
index f878fe6..24a4602 100644
--- a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMessageAdapter.java
+++ b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageAdapter.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.lisp.ctl;
+package org.onosproject.lisp.ctl.impl;
 
 import io.netty.buffer.ByteBuf;
 import org.onosproject.lisp.msg.protocols.LispMessage;
diff --git a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMessageDecoderTest.java b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageDecoderTest.java
similarity index 99%
rename from protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMessageDecoderTest.java
rename to protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageDecoderTest.java
index b808ef1..d3e74b3 100644
--- a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMessageDecoderTest.java
+++ b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageDecoderTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.lisp.ctl;
+package org.onosproject.lisp.ctl.impl;
 
 import com.google.common.collect.Lists;
 import io.netty.buffer.ByteBuf;
diff --git a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMessageEncoderTest.java b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageEncoderTest.java
similarity index 94%
rename from protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMessageEncoderTest.java
rename to protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageEncoderTest.java
index 856a324..a7fd2de 100644
--- a/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/LispMessageEncoderTest.java
+++ b/protocols/lisp/ctl/src/test/java/org/onosproject/lisp/ctl/impl/LispMessageEncoderTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.lisp.ctl;
+package org.onosproject.lisp.ctl.impl;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
@@ -87,7 +87,8 @@
         expBuilder.append("LISP message [LISP_MAP_NOTIFY] ");
 
         String expected = expBuilder.toString();
-        String returned = new String(buff.array(), StandardCharsets.UTF_8).substring(0, expected.length());
+        String returned = new String(buff.array(),
+                        StandardCharsets.UTF_8).substring(0, expected.length());
         assertThat(returned, is(expected));
     }
 }
