Completed
Push — master ( 2be878...1dc258 )
by Jeroen De
51:08 queued 11:06
created

testWhenBlockedBankAccountDataIsGiven_failureResponseIsReturned()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 8
rs 9.4285
c 1
b 0
f 0
cc 1
eloc 5
nc 1
nop 0
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace WMDE\Fundraising\Frontend\Tests\Integration\UseCases\GenerateIban;
6
7
use WMDE\Fundraising\Frontend\PaymentContext\Domain\BankDataConverter;
8
use WMDE\Fundraising\Frontend\PaymentContext\Domain\Model\BankData;
9
use WMDE\Fundraising\Frontend\PaymentContext\Domain\Model\Iban;
10
use WMDE\Fundraising\Frontend\PaymentContext\ResponseModel\IbanResponse;
11
use WMDE\Fundraising\Frontend\PaymentContext\UseCases\GenerateIban\GenerateIbanRequest;
12
use WMDE\Fundraising\Frontend\PaymentContext\UseCases\GenerateIban\GenerateIbanUseCase;
13
use WMDE\Fundraising\Frontend\Validation\IbanValidator;
14
15
/**
16
 * @covers WMDE\Fundraising\Frontend\PaymentContext\UseCases\GenerateIban\GenerateIbanUseCase
17
 *
18
 * @licence GNU GPL v2+
19
 * @author Kai Nissen <[email protected]>
20
 */
21
class GenerateIbanUseCaseTest extends \PHPUnit_Framework_TestCase {
22
23
	public function setUp() {
24
		if ( !function_exists( 'lut_init' ) ) {
25
			$this->markTestSkipped( 'The konto_check needs to be installed!' );
26
		}
27
	}
28
29
	public function testWhenValidBankAccountDataIsGiven_fullBankDataIsReturned() {
30
		$useCase = $this->newGenerateIbanUseCase();
31
32
		$bankData = new BankData();
33
		$bankData->setBic( 'HASPDEHHXXX' );
34
		$bankData->setIban( new Iban( 'DE76200505501015754243' ) );
35
		$bankData->setAccount( '1015754243' );
36
		$bankData->setBankCode( '20050550' );
37
		$bankData->setBankName( 'Hamburger Sparkasse' );
38
39
		$this->assertEquals(
40
			IbanResponse::newSuccessResponse( $bankData ),
41
			$useCase->generateIban( new GenerateIbanRequest( '1015754243', '20050550' ) )
42
		);
43
	}
44
45
	public function testWhenInvalidBankAccountDataIsGiven_failureResponseIsReturned() {
46
		$useCase = $this->newGenerateIbanUseCase();
47
48
		$this->assertEquals(
49
			IbanResponse::newFailureResponse(),
50
			$useCase->generateIban( new GenerateIbanRequest( '1015754241', '20050550' ) )
51
		);
52
	}
53
54
	public function testWhenBlockedBankAccountDataIsGiven_failureResponseIsReturned() {
55
		$useCase = $this->newGenerateIbanUseCase();
56
57
		$this->assertEquals(
58
			IbanResponse::newFailureResponse(),
59
			$useCase->generateIban( new GenerateIbanRequest( '1194700', '10020500' ) )
60
		);
61
	}
62
63
	private function newGenerateIbanUseCase() {
64
		$bankDataConverter = new BankDataConverter( 'res/blz.lut2f' );
65
		return new GenerateIbanUseCase(
66
			$bankDataConverter,
67
			new IbanValidator( $bankDataConverter, [ 'DE33100205000001194700' ] )
68
		);
69
	}
70
}
71