Completed
Pull Request — master (#16)
by Tonina
125:10 queued 61:03
created

CampaignCollectionTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 29
dl 0
loc 47
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A test_given_date_out_of_range_does_not_return_campaign() 0 18 1
A test_given_date_returns_active_campaign() 0 24 1
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace WMDE\BannerServer\Tests\Unit\Entity\BannerSelection;
6
7
use WMDE\BannerServer\Entity\BannerSelection\Campaign;
8
use WMDE\BannerServer\Entity\BannerSelection\CampaignCollection;
9
10
class CampaignCollectionTest extends \PHPUnit\Framework\TestCase {
11
12
	public function test_given_date_returns_active_campaign() {
13
		$campaignCollection = new CampaignCollection(
14
			new Campaign(
15
				'C18_WMDE_Test_future',
16
				new \DateTime( '2099-10-01 14:00:00' ),
17
				new \DateTime( '2099-10-31 14:00:00' ),
18
				[]
19
			),
20
			new Campaign(
21
				'C18_WMDE_Test_present',
22
				new \DateTime( '2018-10-01 14:00:00' ),
23
				new \DateTime( '2018-10-31 14:00:00' ),
24
				[]
25
			),
26
			new Campaign(
27
				'C18_WMDE_Test_past',
28
				new \DateTime( '1999-10-01 14:00:00' ),
29
				new \DateTime( '1999-10-31 14:00:00' ),
30
				[]
31
			)
32
		);
33
		$this->assertEquals(
34
			$campaignCollection->getCampaign( new \DateTime( '2018-10-22 13:59:59' ) )->getIdentifier(),
35
			'C18_WMDE_Test_present'
36
		);
37
	}
38
39
	public function test_given_date_out_of_range_does_not_return_campaign() {
40
		$campaignCollection = new CampaignCollection(
41
			new Campaign(
42
				'C18_WMDE_Test_present',
43
				new \DateTime( '2018-10-01 14:00:00' ),
44
				new \DateTime( '2018-10-31 14:00:00' ),
45
				[]
46
			),
47
			new Campaign(
48
				'C18_WMDE_Test_past',
49
				new \DateTime( '1999-10-01 14:00:00' ),
50
				new \DateTime( '1999-10-31 14:00:00' ),
51
				[]
52
			)
53
		);
54
		$this->assertEquals(
55
			$campaignCollection->getCampaign( new \DateTime( '2017-09-01 14:00:00' ) ),
56
			null
57
		);
58
	}
59
}
60