/** * {@inheritDoc} */ public function execute($request) { /** @var $request ObtainToken */ RequestNotSupportedException::assertSupports($this, $request); $model = ArrayObject::ensureArrayObject($request->getModel()); if ($model['card']) { throw new LogicException('The token has already been set.'); } $getHttpRequest = new GetHttpRequest(); $this->payment->execute($getHttpRequest); if ($getHttpRequest->method == 'POST' && isset($getHttpRequest->request['stripeToken'])) { $model['card'] = $getHttpRequest->request['stripeToken']; return; } $this->payment->execute($renderTemplate = new RenderTemplate($this->templateName, array( 'model' => $model, 'publishable_key' => $this->keys->getPublishableKey(), ))); throw new HttpResponse($renderTemplate->getResult()); }
/** * @test * @expectedException InvalidArgumentException */ public function shouldThrowExceptionIfParameterExistsOnAddParameter() { $request = new RenderTemplate('aTemplate', array()); $request->addParameter('foo', 'fooVal'); $request->addParameter('foo', 'barVal'); }
/** * @test */ public function shouldAllowGetResultPreviouslySet() { $request = new RenderTemplate('aTemplate', array()); $request->setResult('theResult'); $this->assertEquals('theResult', $request->getResult()); }