Completed
Push — master ( 530061...ece7ee )
by Jeroen De
82:37 queued 40:45
created

testWhenDonationTimestampCookieIsSet_itIsNotOverwritten()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 22
rs 9.2
c 1
b 0
f 0
cc 1
eloc 13
nc 1
nop 0
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace WMDE\Fundraising\Frontend\Tests\EdgeToEdge\Routes;
6
7
use Symfony\Component\BrowserKit\Client;
8
use Symfony\Component\BrowserKit\Cookie;
9
use WMDE\Fundraising\Frontend\App\RouteHandlers\ShowDonationConfirmationHandler;
10
use WMDE\Fundraising\Frontend\Factories\FunFunFactory;
11
use WMDE\Fundraising\Frontend\MembershipContext\Domain\Model\Application;
12
use WMDE\Fundraising\Frontend\Tests\Data\ValidMembershipApplication;
13
use WMDE\Fundraising\Frontend\Tests\EdgeToEdge\WebRouteTestCase;
14
use WMDE\Fundraising\Frontend\Tests\Fixtures\FixedTokenGenerator;
15
16
/**
17
 * @licence GNU GPL v2+
18
 * @author Kai Nissen < [email protected] >
19
 */
20
class ShowMembershipConfirmationRouteTest extends WebRouteTestCase {
21
22
	const CORRECT_ACCESS_TOKEN = 'justSomeToken';
23
24
	private function newStoredMembershipApplication( FunFunFactory $factory ): Application {
25
		$factory->setTokenGenerator( new FixedTokenGenerator(
26
			self::CORRECT_ACCESS_TOKEN
27
		) );
28
29
		$membershipApplication = ValidMembershipApplication::newDomainEntity();
30
31
		$factory->getMembershipApplicationRepository()->storeApplication( $membershipApplication );
32
33
		return $membershipApplication;
34
	}
35
36
	public function testWhenDonationTimestampCookieIsSet_itIsNotOverwritten() {
37
		$this->createEnvironment( [], function ( Client $client, FunFunFactory $factory ) {
38
			$donation = $this->newStoredMembershipApplication( $factory );
39
40
			$client->getCookieJar()->set(
41
				new Cookie( ShowDonationConfirmationHandler::SUBMISSION_COOKIE_NAME, 'some value' )
42
			);
43
			$client->request(
44
				'GET',
45
				'show-membership-confirmation',
46
				[
47
					'id' => $donation->getId(),
48
					'accessToken' => self::CORRECT_ACCESS_TOKEN
49
				]
50
			);
51
52
			$this->assertSame(
53
				'some value',
54
				$client->getCookieJar()->get( ShowDonationConfirmationHandler::SUBMISSION_COOKIE_NAME )->getValue()
55
			);
56
		} );
57
	}
58
59
}
60