diff --git a/SAS/MoM/MoMQueryService/momqueryservice.py b/SAS/MoM/MoMQueryService/momqueryservice.py
index 395d419224e16015e7d00db5a2847b758304afb9..743b1562f8937aafe32ff1983050191a1635edc1 100755
--- a/SAS/MoM/MoMQueryService/momqueryservice.py
+++ b/SAS/MoM/MoMQueryService/momqueryservice.py
@@ -13,7 +13,7 @@ from lofar.messaging import Service
 logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', level=logging.INFO)
 logger=logging.getLogger("momqueryservice")
 
-class ProjectDetailsQueryHandler:
+class MoMDatabaseWrapper:
     '''handler class for details query in mom db'''
     def __init__(self, passwd):
         self.conn = connector.connect(host="mysql1.control.lofar",
@@ -21,6 +21,28 @@ class ProjectDetailsQueryHandler:
                                         passwd=passwd,
                                         database="lofar_mom3")
 
+    def getProjectDetails(self, mom_ids_str):
+        cursor = self.conn.cursor(dictionary=True)
+        # TODO: make a view for this query in momdb!
+        query = '''SELECT project.mom2id as project_mom2id, project.name as project_name, project.description as project_description,
+        object.mom2id as object_mom2id, object.name as object_name, object.description as object_description, object.mom2objecttype as object_type, object.group_id as object_group_id
+        FROM lofar_mom3.mom2object as object
+        inner join lofar_mom3.mom2object as project on project.id = object.ownerprojectid
+        where object.mom2id in (%s)
+        order by project_mom2id
+        ''' % (mom_ids_str)
+        cursor.execute(query)
+
+        return cursor.fetchall()
+
+
+class ProjectDetailsQueryHandler:
+    '''handler class for details query in mom db
+    :param MoMDatabaseWrapper momdb inject database access via wrapper
+    '''
+    def __init__(self, passwd, momdb):
+        self.momdb = momdb
+
     def __call__(self, text):
         # parse text
         # it should contain a list of ints
@@ -30,24 +52,12 @@ class ProjectDetailsQueryHandler:
         mom_ids_str = ', '.join(mom_ids)
 
         if not mom_ids_str:
-            logger.error("Could not find proper ids in: " + text)
             raise KeyError("Could not find proper ids in: " + text)
 
         logger.info("Query for mom id%s: %s" % ('\'s' if len(mom_ids) > 1 else '', mom_ids_str))
 
-        cursor = self.conn.cursor(dictionary=True)
-        # TODO: make a view for this query in momdb!
-        query = '''SELECT project.mom2id as project_mom2id, project.name as project_name, project.description as project_description,
-        object.mom2id as object_mom2id, object.name as object_name, object.description as object_description, object.mom2objecttype as object_type, object.group_id as object_group_id
-        FROM lofar_mom3.mom2object as object
-        inner join lofar_mom3.mom2object as project on project.id = object.ownerprojectid
-        where object.mom2id in (%s)
-        order by project_mom2id
-        ''' % (mom_ids_str)
-        cursor.execute(query)
-
         result = {}
-        rows = cursor.fetchall()
+        rows = self.momdb.getProjectDetails(mom_ids_str)
         for row in rows:
             object_mom2id = row['object_mom2id']
             result[str(object_mom2id)] = row
@@ -56,12 +66,15 @@ class ProjectDetailsQueryHandler:
         return result
 
 
-def createService(busname='momqueryservice', momreadonly_passwd=''):
+def createService(busname='momqueryservice', momreadonly_passwd='', momdb = None):
     '''create the GetProjectDetails on given busname
     :param string busname: name of the bus on which this service listens
     :param string momreadonly_passwd: the momreadonly passwd.
     :rtype: lofar.messaging.Service'''
-    handler = ProjectDetailsQueryHandler(momreadonly_passwd)
+    if not momdb:
+        momdb = MoMDatabaseWrapper(momreadonly_passwd)
+
+    handler = ProjectDetailsQueryHandler(momreadonly_passwd, momdb)
     return Service(busname,
                    'GetProjectDetails',
                    handler,
diff --git a/SAS/MoM/MoMQueryService/test/test_momqueryservice.py b/SAS/MoM/MoMQueryService/test/test_momqueryservice.py
index 24f9158aff102f623c43f7fd1c8bd6acc0de000f..4f1ba7350d36b8a709f691d604faecf524f69552 100755
--- a/SAS/MoM/MoMQueryService/test/test_momqueryservice.py
+++ b/SAS/MoM/MoMQueryService/test/test_momqueryservice.py
@@ -33,14 +33,20 @@ try:
     busname = "momqueryservice-test-%s" % (uuid.uuid1())
     broker.addExchange('topic', busname)
 
-    # do not commit passwd in svn
-    passwd = ''
+    testid = '1234'
 
-    with momqueryservice.createService(busname, passwd):
+    # create a mock for the MoMDatabaseWrapper
+    # so we don't need the actual momdb for this test
+    # and we don't need the momdb passwd
+    class MockMoMDatabaseWrapper:
+        def getProjectDetails(self, mom_ids_str):
+            return [{'project_mom2id': '4567', 'project_name': 'foo', 'project_description': 'bar', 'object_mom2id': testid}]
+
+    # inject the mock into the service
+    with momqueryservice.createService(busname, '', MockMoMDatabaseWrapper()):
 
         class TestLTAStorageDb(unittest.TestCase):
             def testProjectDetailsQuery(self):
-                testid = '598612'
                 result = momprojectdetailsquery.getProjectDetails(testid, busname)
                 self.assertEquals(1, len(result.keys()))
                 self.assertEquals(testid, result.keys()[0])
@@ -49,9 +55,8 @@ try:
                 self.assertTrue('project_description' in result[testid])
 
             def testSqlInjection(self):
-                testid = '598612; select * from lofar_mom3.mom2object;'
-                result = momprojectdetailsquery.getProjectDetails(testid, busname)
-                print result
+                inj_testid = testid + '; select * from lofar_mom3.mom2object;'
+                result = momprojectdetailsquery.getProjectDetails(inj_testid, busname)
 
                 self.assertTrue('errmsg' in result)
                 self.assertTrue('KeyError' in result['errmsg'])