public function testFilterClass() { $select = new Select(); $select->setFilterClass('ValidFilter'); $f = $select->filter(); $this->assertInstanceOf('ValidFilter', $f); $select = new Select(); $ok = false; try { $select->setFilterClass('NotAValidFilter'); } catch (\RBM\SqlQuery\Exception $exception) { $ok = true; } if (!$ok) { $this->fail("Exception has to be thrown when the filterClass does not extend Filter"); } $ok = false; $select = new Select(); $select->filter(); try { $select->setFilterClass('ValidFilter'); } catch (\RBM\SqlQuery\Exception $exception) { $ok = true; } if (!$ok) { $this->fail("Exception has to be thrown when the filterClass is set after ->filter() has already been call"); } }