public function setWith($value = null, $charlist = null, $checkType = true)
{
if ($value instanceof \closure) {
ob_start();
$value($this->getTest());
$value = ob_get_clean();
} else {
if ($value === null && ob_get_level() > 0) {
$value = ob_get_clean();
ob_start();
}
}
return parent::setWith($value, $charlist, $checkType);
}
public function testSetWith() { $this->if($asserter = new sut(new asserter\generator()))->then->object($asserter->setWith(function () use(&$output) { echo $output = uniqid(); }))->isIdenticalTo($asserter)->string($asserter->getValue())->isEqualTo($output)->variable($asserter->getCharlist())->isNull()->object($asserter->setWith(function () use(&$output) { echo $output = uniqid(); }, null, ""))->isIdenticalTo($asserter)->string($asserter->getValue())->isEqualTo($output)->string($asserter->getCharlist())->isEqualTo(""); }