RedUNIT\Postgres\Foreignkeys::testConstraint PHP Method

testConstraint() public method

Test constraint function directly in Writer.
public testConstraint ( ) : void
return void
    public function testConstraint()
    {
        R::nuke();
        $database = R::getCell('SELECT current_database()');
        $sql = 'CREATE TABLE book (id SERIAL PRIMARY KEY)';
        R::exec($sql);
        $sql = 'CREATE TABLE page (id SERIAL PRIMARY KEY)';
        R::exec($sql);
        $sql = 'CREATE TABLE book_page (
			id SERIAL PRIMARY KEY,
			book_id INTEGER,
			page_id INTEGER
		)';
        R::exec($sql);
        $writer = R::getWriter();
        $sql = "\n\t\t\tSELECT\n\t\t\t\tCOUNT(*)\n\t\t\tFROM information_schema.key_column_usage AS k\n\t\t\tLEFT JOIN information_schema.table_constraints AS c ON c.constraint_name = k.constraint_name\n\t\t\tWHERE k.table_catalog = '{$database}'\n\t\t\t\tAND k.table_schema = 'public'\n\t\t\t\tAND k.table_name = 'book_page'\n\t\t\t\tAND c.constraint_type = 'FOREIGN KEY'";
        $numFKS = R::getCell($sql);
        asrt((int) $numFKS, 0);
        $writer->addFK('book_page', 'book', 'book_id', 'id', TRUE);
        $writer->addFK('book_page', 'page', 'page_id', 'id', TRUE);
        $numFKS = R::getCell($sql);
        asrt((int) $numFKS, 2);
        $writer->addFK('book_page', 'book', 'book_id', 'id', TRUE);
        $writer->addFK('book_page', 'page', 'page_id', 'id', TRUE);
        $numFKS = R::getCell($sql);
        asrt((int) $numFKS, 2);
    }