/** * 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); }