public function deserialize($rawData, $format)
 {
     Assertion::same('json', $format, 'No other format is supported');
     $coupons = json_decode($rawData, true);
     $dto = new Coupons();
     foreach ($coupons as $couponArray) {
         $dto->addCoupon($this->createCouponFromArray($couponArray));
     }
     return $dto;
 }
 /**
  * @test
  */
 public function it_is_iterable()
 {
     $coupon1 = new Coupon();
     $coupon1->setCouponCode('coupon-code-1');
     $this->coupons->addCoupon($coupon1);
     $coupon2 = new Coupon();
     $coupon2->setCouponCode('coupon-code-2');
     $this->coupons->addCoupon($coupon2);
     $this->assertSame(array('coupon-code-1' => $coupon1, 'coupon-code-2' => $coupon2), iterator_to_array($this->coupons));
 }