protected function notContainsValue($value, $failMessage, $strict)
{
if (in_array($value, $this->valueIsSet()->value, $strict) === false) {
$this->pass();
} else {
if ($this->key === null) {
if ($failMessage === null) {
if ($strict === false) {
$failMessage = $this->_('%s contains %s', $this, $this->getTypeOf($value));
} else {
$failMessage = $this->_('%s strictly contains %s', $this, $this->getTypeOf($value));
}
}
$this->fail($failMessage);
} else {
if ($strict === false) {
$pass = $this->value[$this->key] != $value;
} else {
$pass = $this->value[$this->key] !== $value;
}
if ($pass === false) {
$key = $this->key;
}
$this->key = null;
if ($pass === true) {
$this->pass();
} else {
if ($failMessage === null) {
if ($strict === false) {
$failMessage = $this->_('%s contains %s at key %s', $this, $this->getTypeOf($value), $this->getTypeOf($key));
} else {
$failMessage = $this->_('%s strictly contains %s at key %s', $this, $this->getTypeOf($value), $this->getTypeOf($key));
}
}
$this->fail($failMessage);
}
}
}
return $this;
}