/** * @test */ public function shouldAllowPeekValueSetInConstructorAndNotErase() { $expectedValue = 'cardNumber'; $sensitiveValue = new SensitiveValue($expectedValue); $this->assertEquals($expectedValue, $sensitiveValue->peek()); $this->assertEquals($expectedValue, $sensitiveValue->peek()); }
/** * {@inheritDoc} */ public function setExpireAt($date = null) { $date = SensitiveValue::ensureSensitive($date); if (false == (null === $date->peek() || $date->peek() instanceof \DateTime)) { throw new InvalidArgumentException('The date argument must be either instance of DateTime or null'); } $this->securedExpireAt = $date; // BC $this->expireAt = $this->securedExpireAt->peek(); }
/** * {@inheritDoc} */ public function getExpireAt() { return $this->securedExpireAt ? $this->securedExpireAt->peek() : $this->expireAt; }
/** * @test */ public function shouldConvertArrayObjectToPrimitiveArrayMakingSensitiveValueUnsafeAndEraseIt() { $sensitiveValue = new SensitiveValue('theCreditCard'); $arrayObject = new ArrayObject(); $arrayObject['creditCard'] = $sensitiveValue; $arrayObject['email'] = '*****@*****.**'; $primitiveArray = $arrayObject->toUnsafeArray(); $this->assertInternalType('array', $primitiveArray); $this->assertArrayHasKey('creditCard', $primitiveArray); $this->assertEquals('theCreditCard', $primitiveArray['creditCard']); $this->assertArrayHasKey('email', $primitiveArray); $this->assertEquals('*****@*****.**', $primitiveArray['email']); $this->assertNull($sensitiveValue->peek()); }