def setUp(self):
        self.logger = Mock(spec=['log', 'info', 'debug', 'error'])
        self.db_connection = Mock(spec=['close', 'query'])
        self.autoCast = {
            'regproc': '::oid',
            'regprocedure': '::oid',
            'regoper': '::oid',
            'regoperator': '::oid',
            'regclass': '::oid',
            'regtype': '::oid',
            'int2vector': '::int2[]'
        }

        self.subject = ForeignKeyCheck(self.db_connection, self.logger, False,
                                       self.autoCast)

        self.full_join_cat_tables = set([
            'pg_attribute', 'gp_distribution_policy', 'pg_appendonly',
            'pg_constraint', 'pg_index'
        ])
        self.foreign_key_check = Mock(spec=['runCheck'])
        self.foreign_key_check.runCheck.return_value = []
        self.db_connection.query.return_value.ntuples.return_value = 2
        self.db_connection.query.return_value.listfields.return_value = [
            'pkey1', 'pkey2'
        ]
        self.db_connection.query.return_value.getresult.return_value = [
            ('r1', 'r2'), ('r3', 'r4')
        ]