/** * @test */ public function shouldCreateCustomTokenWithoutAfterUrl() { $token = new Token(); $tokenStorageMock = $this->createStorageMock(); $tokenStorageMock->expects($this->once())->method('createModel')->will($this->returnValue($token)); $tokenStorageMock->expects($this->once())->method('updateModel')->with($this->identicalTo($token)); $model = new \stdClass(); $identificator = new Identificator('anId', 'stdClass'); $paymentName = 'thePaymentName'; $modelStorage = $this->createStorageMock(); $modelStorage->expects($this->once())->method('getIdentificator')->with($this->identicalTo($model))->will($this->returnValue($identificator)); $storageRegistryMock = $this->createStorageRegistryMock(); $storageRegistryMock->expects($this->once())->method('getStorage')->with($this->identicalTo($model))->will($this->returnValue($modelStorage)); $routerMock = $this->createUrlGeneratorMock(); $routerMock->expects($this->once())->method('generate')->with('theTargetPath', array('payum_token' => $token->getHash()), true)->will($this->returnValue('theTargetUrl')); $factory = new TokenFactory($routerMock, $tokenStorageMock, $storageRegistryMock, 'capture', 'notify', 'authorize'); $actualToken = $factory->createToken($paymentName, $model, 'theTargetPath'); $this->assertSame($token, $actualToken); $this->assertEquals($paymentName, $token->getPaymentName()); $this->assertSame($identificator, $token->getDetails()); $this->assertEquals('theTargetUrl', $token->getTargetUrl()); $this->assertNull($token->getAfterUrl()); }
/** * @test */ public function shouldAllowCreateAfterUrlWithFragment() { $authorizeToken = new Token(); $tokenStorageMock = $this->createStorageMock(); $tokenStorageMock->expects($this->at(0))->method('create')->will($this->returnValue($authorizeToken)); $tokenStorageMock->expects($this->at(1))->method('update')->with($this->identicalTo($authorizeToken)); $model = new \stdClass(); $identity = new Identity('anId', 'stdClass'); $gatewayName = 'theGatewayName'; $modelStorage = $this->createStorageMock(); $modelStorage->expects($this->once())->method('identify')->with($this->identicalTo($model))->will($this->returnValue($identity)); $storageRegistryMock = $this->createStorageRegistryMock(); $storageRegistryMock->expects($this->once())->method('getStorage')->with($this->identicalTo($model))->will($this->returnValue($modelStorage)); $factory = new TokenFactory($tokenStorageMock, $storageRegistryMock, $this->createUrlGeneratorStub()); $actualToken = $factory->createToken($gatewayName, $model, 'http://example.com/authorize.php', array(), 'http://google.com/foo/bar?foo=fooVal#fragment', array('payum_token' => null)); $this->assertSame($authorizeToken, $actualToken); $this->assertEquals($gatewayName, $authorizeToken->getGatewayName()); $this->assertSame($identity, $authorizeToken->getDetails()); $this->assertEquals('http://example.com/authorize.php?payum_token=' . $authorizeToken->getHash(), $authorizeToken->getTargetUrl()); $this->assertEquals('http://google.com/foo/bar?foo=fooVal#fragment', $authorizeToken->getAfterUrl()); }