/**
  * createVoucher function.
  *
  * @access public
  *
  * @param string $campaignUrn
  *
  * @return Voucher
  */
 public function createVoucher($campaignUrn)
 {
     // Check for valid campaign
     if ($campaign = $this->campaignRepo->loadCampaign($campaignUrn)) {
         $voucher = $this->model->create(['campaign_id' => $campaign->id, 'hash' => Uuid::uuid1()->toString()]);
         return $voucher;
     }
     return false;
 }
 /** @test **/
 public function itCanRedeemVoucher()
 {
     $repo = $this->getVoucherRepository();
     Voucher::create(['hash' => 'redeem001', 'campaign_id' => 1]);
     $voucher = $repo->redeemVoucher('redeem001');
     $this->assertInstanceOf('Fastwebmedia\\LaravelVouchering\\Models\\Voucher', $voucher);
     $this->assertEquals('1', $voucher->is_redeemed);
 }
 /** @test **/
 public function itCanGetCustomCampaignExpiryDate()
 {
     $repo = $this->getVoucherRepository();
     Voucher::create(['hash' => 'voucher002', 'campaign_id' => 1]);
     $voucher = $repo->loadVoucher('voucher002');
     $expected_date = date('Y-m-d H:i:s', strtotime($voucher->created_at . ' + 5 days'));
     $expiryDate = $voucher->getExpiryDate('5');
     $this->assertEquals($expected_date, $expiryDate);
 }