From 74a6ba8a0b679f36df7963e13c5fd36d31b1f88b Mon Sep 17 00:00:00 2001 From: Aleksey Lavrinenko Date: Thu, 20 Oct 2016 22:30:14 +0300 Subject: [PATCH] Fix ClickTracking settings serialization --- lib/helpers/mail/Mail.php | 5 +++- test/unit/ClickTrackingTest.php | 53 +++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 test/unit/ClickTrackingTest.php diff --git a/lib/helpers/mail/Mail.php b/lib/helpers/mail/Mail.php index 4311a316d..2c07fdbea 100644 --- a/lib/helpers/mail/Mail.php +++ b/lib/helpers/mail/Mail.php @@ -74,7 +74,10 @@ public function jsonSerialize() [ 'enable' => $this->getEnable(), 'enable_text' => $this->getEnableText() - ] + ], + function ($value) { + return $value !== null; + } ); } } diff --git a/test/unit/ClickTrackingTest.php b/test/unit/ClickTrackingTest.php new file mode 100644 index 000000000..290dff927 --- /dev/null +++ b/test/unit/ClickTrackingTest.php @@ -0,0 +1,53 @@ + + * @covers \SendGrid\ClickTracking + */ +class ClickTrackingTest extends \PHPUnit_Framework_TestCase +{ + public function testDefaultSerializesToEmptyArray() + { + $clickTracking = new \SendGrid\ClickTracking(); + + $this->assertEquals([], $clickTracking->jsonSerialize()); + } + + public function testSerializesTrueValues() + { + $clickTracking = new \SendGrid\ClickTracking(); + $clickTracking->setEnable(true); + $clickTracking->setEnableText(true); + + $this->assertEquals([ + 'enable' => true, + 'enable_text' => true, + ], $clickTracking->jsonSerialize()); + } + + public function testSerializesFalseValues() + { + $clickTracking = new \SendGrid\ClickTracking(); + $clickTracking->setEnable(false); + $clickTracking->setEnableText(false); + + $this->assertEquals([ + 'enable' => false, + 'enable_text' => false, + ], $clickTracking->jsonSerialize()); + } + + public function testSerializesVariousValues() + { + $clickTracking = new \SendGrid\ClickTracking(); + $clickTracking->setEnable(false); + $clickTracking->setEnableText(true); + + $this->assertEquals([ + 'enable' => false, + 'enable_text' => true, + ], $clickTracking->jsonSerialize()); + } +}