diff --git a/src/Number.php b/src/Number.php index 1798651..61475ac 100644 --- a/src/Number.php +++ b/src/Number.php @@ -33,7 +33,7 @@ /** * Input for the Luhn Algorithm contains a number and a check digit. */ -class Number implements NumberInterface +class Number implements NumberInterface, \Serializable { /** * @var string @@ -114,4 +114,14 @@ public function __toString() { return $this->number . $this->checkDigit; } + + public function serialize() + { + return serialize([$this->number, $this->checkDigit]); + } + + public function unserialize($serialized) + { + list($this->number, $this->checkDigit) = unserialize($serialized); + } } diff --git a/tests/NumberTest.php b/tests/NumberTest.php index 2aa353d..fb522dd 100644 --- a/tests/NumberTest.php +++ b/tests/NumberTest.php @@ -121,4 +121,14 @@ public function provideProperties() "Valid number and check digit (null)" => [123, null], ]; } + + public function testSerialize() + { + $number = new Number(133, 7); + $serialized = serialize($number); + $other = unserialize($serialized); + $this->assertInstanceOf(Number::class, $other); + $this->assertEquals(133, $other->getNumber()); + $this->assertEquals(7, $other->getCheckDigit()); + } }