diff --git a/src/caosadvancedtools/table_importer.py b/src/caosadvancedtools/table_importer.py
index cb61e8389de69a2d0d0527ad01cb8b9991b19ece..c4f2df36edbaa20c9e5e2a3689e0638137f4ac68 100755
--- a/src/caosadvancedtools/table_importer.py
+++ b/src/caosadvancedtools/table_importer.py
@@ -31,6 +31,7 @@ import logging
 import pathlib
 from datetime import datetime
 
+import caosdb as db
 import numpy as np
 import pandas as pd
 from xlrd import XLRDError
@@ -56,6 +57,21 @@ def assure_name_format(name):
     return name
 
 
+def check_reference_field(ent_id, recordtype):
+    if 1 != db.execute_query("COUNT {} WIHT id={}".format(
+            recordtype,
+            ent_id),
+            unique=True):
+        raise ValueError(
+            "No {} with the supplied id={} exists. \n"
+            "Please supply a valid ID.".format(
+                recordtype,
+                ent_id
+            ))
+
+    return ent_id
+
+
 def yes_no_converter(val):
     """
     converts a string to True or False if possible.
diff --git a/unittests/test_h5.py b/unittests/test_h5.py
index e5ae94686fe4542f6833e21e9a80f01e4257538d..360d4b28938492d0f2af6d696e39dffb1cc3fead 100644
--- a/unittests/test_h5.py
+++ b/unittests/test_h5.py
@@ -74,6 +74,9 @@ class H5CFoodTest(unittest.TestCase):
             self.assertEqual(i.name, "group_level2_aa")
 
     def test_collect_existing_structure(self):
+        # TODO this does probably break the code: The function will not be
+        # restored correctly.
+        # Change it to use the BaseMockUpTest
         real_retrieve = caosdb.apiutils.retrieve_entity_with_id
         caosdb.apiutils.retrieve_entity_with_id = dummy_get
 
diff --git a/unittests/test_table_importer.py b/unittests/test_table_importer.py
index b574c867881141928ac59c2b002fb7f185dac7bb..eb841af800de86fdb1cf2d3af818e95ee6a9271c 100644
--- a/unittests/test_table_importer.py
+++ b/unittests/test_table_importer.py
@@ -23,22 +23,25 @@ import unittest
 from functools import partial
 from tempfile import NamedTemporaryFile
 
+import caosdb as db
 import numpy as np
 import pandas as pd
 import pytest
 from caosadvancedtools.datainconsistency import DataInconsistencyError
-from caosadvancedtools.table_importer import (XLSImporter, assure_name_format,
+from caosadvancedtools.table_importer import (CSVImporter, TableImporter,
+                                              TSVImporter, XLSImporter,
+                                              assure_name_format,
+                                              check_reference_field,
                                               date_converter,
                                               datetime_converter,
-                                              TableImporter,
-                                              TSVImporter,
-                                              CSVImporter,
                                               incomplete_date_converter,
+                                              string_in_list,
                                               win_path_converter,
                                               win_path_list_converter,
-                                              string_in_list,
                                               yes_no_converter)
 
+from test_utils import BaseMockUpTest
+
 
 class ConverterTest(unittest.TestCase):
     def test_yes_no(self):
@@ -211,3 +214,34 @@ class TSVImporterTest(TableImporterTest):
         self.valid_df.to_csv(tmp.name, sep="\t")
         importer = TSVImporter(**self.importer_kwargs)
         importer.read_file(tmp.name)
+
+
+class CountQueryNoneConverterTest(BaseMockUpTest):
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        # simulate that 0 entity exists
+        self.entities = (
+            '<Response count="0">'
+            '<Query string="count record" results="0">'
+            '</Query>'
+            '</Response>'
+            )
+
+    def test_check_reference_field(self):
+        self.assertRaises(ValueError, check_reference_field, "1232",  "Max")
+
+
+class CountQuerySingleConverterTest(BaseMockUpTest):
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        # simulate that 1 entity exists
+        self.entities = (
+            '<Response count="1">'
+            '<Query string="count record" results="1">'
+            '</Query>'
+            '</Response>'
+            )
+
+    def test_check_reference_field(self):
+        self.assertEqual(check_reference_field("1232",  "Max"),
+                         "1232")
diff --git a/unittests/test_utils.py b/unittests/test_utils.py
index 054d7c99069f294e9975742c1c0261fd7ebc768c..7369931799b00eba5a835458a6fad474de1d9039 100644
--- a/unittests/test_utils.py
+++ b/unittests/test_utils.py
@@ -32,14 +32,7 @@ from caosdb.connection.mockup import MockUpResponse, MockUpServerConnection
 from caosdb.exceptions import TransactionError
 
 
-class ReferencesBaseTest(unittest.TestCase):
-    def __init__(self, *args, **kwargs):
-        super().__init__(*args, **kwargs)
-        self.entities = (
-            '<Response><File name="test.npy" path="/some/path/test.npy'
-            '" id="1234"/><Query string="find record" results="1">'
-            '</Query></Response>')
-
+class BaseMockUpTest(unittest.TestCase):
     def setUp(self):
         conlogger = logging.getLogger("connection")
         conlogger.setLevel(level=logging.ERROR)
@@ -70,6 +63,15 @@ class ReferencesBaseTest(unittest.TestCase):
 
         return log
 
+
+class ReferencesBaseTest(BaseMockUpTest):
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        self.entities = (
+            '<Response><File name="test.npy" path="/some/path/test.npy'
+            '" id="1234"/><Query string="find record" results="1">'
+            '</Query></Response>')
+
     def test_ref(self):
         self.clear_log()
         files = get_referenced_files("test.npy", prefix=None, filename=None,