diff --git a/src/OneSignalMessage.php b/src/OneSignalMessage.php index 3ba14de..57bbcc6 100644 --- a/src/OneSignalMessage.php +++ b/src/OneSignalMessage.php @@ -104,6 +104,45 @@ public function url($value) return $this; } + /** + * Set the iOS badge increment count. + * + * @param int $count + * + * @return $this + */ + public function incrementIosBadgeCount($count = 1) + { + return $this->setParameter('ios_badgeType', 'Increase') + ->setParameter('ios_badgeCount', $count); + } + + /** + * Set the iOS badge decrement count. + * + * @param int $count + * + * @return $this + */ + public function decrementIosBadgeCount($count = 1) + { + return $this->setParameter('ios_badgeType', 'Increase') + ->setParameter('ios_badgeCount', -1 * $count); + } + + /** + * Set the iOS badge count. + * + * @param int $count + * + * @return $this + */ + public function setIosBadgeCount($count) + { + return $this->setParameter('ios_badgeType', 'SetTo') + ->setParameter('ios_badgeCount', $count); + } + /** * Set additional data. * diff --git a/tests/MessageTest.php b/tests/MessageTest.php index 050cf40..27b3b39 100644 --- a/tests/MessageTest.php +++ b/tests/MessageTest.php @@ -58,6 +58,33 @@ public function it_can_set_the_url() $this->assertEquals('myURL', Arr::get($this->message->toArray(), 'url')); } + /** @test */ + public function it_can_set_the_increment_badge_count() + { + $this->message->incrementIosBadgeCount(123); + + $this->assertEquals('Increase', Arr::get($this->message->toArray(), 'ios_badgeType')); + $this->assertEquals(123, Arr::get($this->message->toArray(), 'ios_badgeCount')); + } + + /** @test */ + public function it_can_set_the_decrement_badge_count() + { + $this->message->decrementIosBadgeCount(123); + + $this->assertEquals('Increase', Arr::get($this->message->toArray(), 'ios_badgeType')); + $this->assertEquals(-123, Arr::get($this->message->toArray(), 'ios_badgeCount')); + } + + /** @test */ + public function it_can_set_the_badge_count() + { + $this->message->setIosBadgeCount(123); + + $this->assertEquals('SetTo', Arr::get($this->message->toArray(), 'ios_badgeType')); + $this->assertEquals(123, Arr::get($this->message->toArray(), 'ios_badgeCount')); + } + /** @test */ public function it_can_set_additional_data() {