|
- <?php
-
- /**
- * A binary safe string comparison.
- *
- * @author Chris Corbyn
- */
- class IdenticalBinaryConstraint extends \PHPUnit_Framework_Constraint
- {
- protected $value;
-
- public function __construct($value)
- {
- $this->value = $value;
- }
-
- /**
- * Evaluates the constraint for parameter $other. Returns TRUE if the
- * constraint is met, FALSE otherwise.
- *
- * @param mixed $other Value or object to evaluate.
- *
- * @return bool
- */
- public function matches($other)
- {
- $aHex = $this->asHexString($this->value);
- $bHex = $this->asHexString($other);
-
- return $aHex === $bHex;
- }
-
- /**
- * Returns a string representation of the constraint.
- *
- * @return string
- */
- public function toString()
- {
- return 'indentical binary';
- }
-
- /**
- * Get the given string of bytes as a stirng of Hexadecimal sequences.
- *
- * @param string $binary
- *
- * @return string
- */
- private function asHexString($binary)
- {
- $hex = '';
-
- $bytes = unpack('H*', $binary);
-
- foreach ($bytes as &$byte) {
- $byte = strtoupper($byte);
- }
-
- return implode('', $bytes);
- }
- }
|