Completed
Pull Request — master (#1)
by Tim
65:22
created

newMissingDataChangeAddressRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 12
nc 1
nop 0
dl 0
loc 13
rs 9.8666
c 0
b 0
f 0
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace WMDE\Fundraising\AddressChangeContext\Tests\Unit\Domain\Model;
6
7
use PHPUnit\Framework\TestCase;
8
use WMDE\Fundraising\AddressChange\Domain\AddressChangeRepository;
9
use WMDE\Fundraising\AddressChange\Domain\Model\AddressChange;
10
use WMDE\Fundraising\AddressChange\UseCases\ChangeAddress\ChangeAddressRequest;
11
use WMDE\Fundraising\AddressChange\UseCases\ChangeAddress\ChangeAddressUseCase;
12
13
/**
14
 * @covers \WMDE\Fundraising\AddressChange\UseCases\ChangeAddress\ChangeAddressUseCase
15
 */
16
class ChangeAddressUseCaseTest extends TestCase {
17
18
	public function testGivenValidAddressChangeRequest_successResponseIsReturned(): void {
19
		$mockAddressChangeRepository = $this->createMock( AddressChangeRepository::class );
20
		$useCase = new ChangeAddressUseCase( $mockAddressChangeRepository );
21
		$response = $useCase->changeAddress( $this->newChangeAddressRequest() );
22
		$this->assertTrue( $response->isSuccess() );
23
	}
24
25
	public function testGivenInvalidAddressChangeRequest_errorResponseIsReturned(): void {
26
		$mockAddressChangeRepository = $this->createMock( AddressChangeRepository::class );
27
		$useCase = new ChangeAddressUseCase( $mockAddressChangeRepository );
28
		$response = $useCase->changeAddress( $this->newMissingDataChangeAddressRequest() );
29
		$this->assertFalse( $response->isSuccess() );
30
	}
31
32
	private function newChangeAddressRequest(): ChangeAddressRequest {
33
		$request = new ChangeAddressRequest();
34
		$request->setAddress( 'Test' );
35
		$request->setAddressType( AddressChange::ADDRESS_TYPE_PERSON );
36
		$request->setCity( 'Test City' );
37
		$request->setCountry( 'Test Country' );
38
		$request->setFirstName( 'Test Name' );
39
		$request->setLastName( 'Test Last Name' );
40
		$request->setPostcode( '12345' );
41
		$request->setSalutation( 'Herr' );
42
		$request->setTitle( 'Prof. Dr.' );
43
		$request->freeze();
44
		return $request;
45
	}
46
47
	private function newMissingDataChangeAddressRequest(): ChangeAddressRequest {
48
		$request = new ChangeAddressRequest();
49
		$request->setAddress( 'Test' );
50
		$request->setAddressType( AddressChange::ADDRESS_TYPE_PERSON );
51
		$request->setCity( '' );
52
		$request->setCountry( 'Test Country' );
53
		$request->setFirstName( 'Test Name' );
54
		$request->setLastName( 'Test Last Name' );
55
		$request->setPostcode( '12345' );
56
		$request->setSalutation( 'Herr' );
57
		$request->setTitle( 'Prof. Dr.' );
58
		$request->freeze();
59
		return $request;
60
	}
61
}
62