From 1f5bd4200d16677482e02186ca8527ee39d2975b Mon Sep 17 00:00:00 2001 From: Arliee Date: Thu, 3 Jan 2019 04:55:24 -0500 Subject: [PATCH] Fix type error when creating tags (#501) * Fix fatal error due to not using DateTime instead of string when creating a tag. * Add unit tests to prove tag creation. * Add unit tests to prove tag creation. * Add first seen and last seen accessors to tags, and unit tests to prove correctness. --- src/Mailgun/Model/Tag/Tag.php | 18 +++++++++++++++++- tests/Model/Tag/TagTest.php | 36 +++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 tests/Model/Tag/TagTest.php diff --git a/src/Mailgun/Model/Tag/Tag.php b/src/Mailgun/Model/Tag/Tag.php index 624e613..34a6bac 100644 --- a/src/Mailgun/Model/Tag/Tag.php +++ b/src/Mailgun/Model/Tag/Tag.php @@ -52,7 +52,7 @@ class Tag */ public static function create(array $data) { - return new self($data['tag'], $data['description'], $data['first-seen'], $data['last-seen']); + return new self($data['tag'], $data['description'], new \DateTime($data['first-seen']), new \DateTime($data['last-seen'])); } /** @@ -70,4 +70,20 @@ class Tag { return $this->description; } + + /** + * @return \DateTime + */ + public function getFirstSeen() + { + return $this->firstSeen; + } + + /** + * @return \DateTime + */ + public function getLastSeen() + { + return $this->lastSeen; + } } diff --git a/tests/Model/Tag/TagTest.php b/tests/Model/Tag/TagTest.php new file mode 100644 index 0000000..d73b127 --- /dev/null +++ b/tests/Model/Tag/TagTest.php @@ -0,0 +1,36 @@ + $expectedTag, + 'description' => $expectedDescription, + 'first-seen' => $expectedFirstSeen, + 'last-seen' => $expectedLastSeeen, + ]); + + $this->assertInstanceOf(TagModel::class, $tag); + $this->assertSame($expectedTag, $tag->getTag()); + $this->assertSame($expectedDescription, $tag->getDescription()); + $this->assertEquals($expectedFirstSeen, $tag->getFirstSeen()->format('Y-m-d\TH:i:s\Z')); + $this->assertEquals($expectedLastSeeen, $tag->getLastSeen()->format('Y-m-d\TH:i:s\Z')); + } +}