diff --git a/pkg/kafka/endpoint_manager.go b/pkg/kafka/endpoint_manager.go
index 4c13c76..1258382 100644
--- a/pkg/kafka/endpoint_manager.go
+++ b/pkg/kafka/endpoint_manager.go
@@ -56,9 +56,9 @@
 	// devices owned by that service need to be reconciled
 	IsDeviceOwnedByService(deviceID string, serviceType string, replicaNumber int32) (bool, error)
 
-	// getReplicaAssignment returns the replica number of the service that owns the deviceID.  This is used by the
+	// GetReplicaAssignment returns the replica number of the service that owns the deviceID.  This is used by the
 	// test only
-	getReplicaAssignment(deviceID string, serviceType string) (ReplicaID, error)
+	GetReplicaAssignment(deviceID string, serviceType string) (ReplicaID, error)
 }
 
 type service struct {
@@ -150,7 +150,7 @@
 	return m.getReplica() == ReplicaID(replicaNumber), nil
 }
 
-func (ep *endpointManager) getReplicaAssignment(deviceID string, serviceType string) (ReplicaID, error) {
+func (ep *endpointManager) GetReplicaAssignment(deviceID string, serviceType string) (ReplicaID, error) {
 	owner, err := ep.getOwner(deviceID, serviceType)
 	if err != nil {
 		return 0, nil
diff --git a/pkg/kafka/endpoint_manager_test.go b/pkg/kafka/endpoint_manager_test.go
index 0ed5a3d..20b330a 100644
--- a/pkg/kafka/endpoint_manager_test.go
+++ b/pkg/kafka/endpoint_manager_test.go
@@ -195,7 +195,7 @@
 			logger.Fatalw("error-getting-endpoint", log.Fields{"error": err})
 		}
 		deviceIDs[deviceID] = endpoint
-		replicaID, err := tm.getReplicaAssignment(deviceID, serviceType)
+		replicaID, err := tm.GetReplicaAssignment(deviceID, serviceType)
 		if err != nil {
 			logger.Fatalw("error-getting-endpoint", log.Fields{"error": err})
 		}
@@ -219,7 +219,7 @@
 
 	// Verify that a device belong to the correct node
 	for deviceID := range deviceIDs {
-		replicaID, err := tm.getReplicaAssignment(deviceID, serviceType)
+		replicaID, err := tm.GetReplicaAssignment(deviceID, serviceType)
 		if err != nil {
 			logger.Fatalw("error-getting-topic", log.Fields{"error": err})
 		}
diff --git a/pkg/mocks/kafka/endpoint_manager.go b/pkg/mocks/kafka/endpoint_manager.go
new file mode 100644
index 0000000..fedbebf
--- /dev/null
+++ b/pkg/mocks/kafka/endpoint_manager.go
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * 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 kafka
+
+import (
+	"github.com/opencord/voltha-lib-go/v3/pkg/kafka"
+)
+
+type EndpointManager struct{}
+
+func NewEndpointManager() kafka.EndpointManager {
+	mock := &EndpointManager{}
+	return mock
+}
+
+func (em *EndpointManager) GetEndpoint(deviceID string, serviceType string) (kafka.Endpoint, error) {
+	// TODO add mocks call and args
+	return kafka.Endpoint(serviceType), nil
+}
+
+func (em *EndpointManager) IsDeviceOwnedByService(deviceID string, serviceType string, replicaNumber int32) (bool, error) {
+	// TODO add mocks call and args
+	return true, nil
+}
+
+func (em *EndpointManager) GetReplicaAssignment(deviceID string, serviceType string) (kafka.ReplicaID, error) {
+	return kafka.ReplicaID(1), nil
+}
