Passed
Push — master ( 38fd6d...28bc7f )
by Tim
61:09
created

CampaignBuilder::newDate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 4
ccs 4
cts 4
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace WMDE\Fundraising\Frontend\BucketTesting;
6
7
use DateTime;
8
use DateTimeZone;
9
10
/**
11
 * @license GNU GPL v2+
12
 */
13
class CampaignBuilder {
14
15
	private $timezone;
16
	private $utc;
17
18 207
	public function __construct( DateTimeZone $timezone ) {
19 207
		$this->timezone = $timezone;
20 207
		$this->utc = new DateTimeZone( 'UTC' );
21 207
	}
22
23 207
	public function getCampaigns( array $campaignConfig ): array {
24 207
		$campaigns = [];
25 207
		foreach( $campaignConfig as $name => $config ) {
26 207
			$campaign = new Campaign(
27 207
				$name,
28 207
				$config['url_key'],
29 207
				CampaignDate::createFromString( $config['start'], $this->timezone ),
30 207
				CampaignDate::createFromString( $config['end'], $this->timezone ),
31 207
				$config['active']
32
			);
33 207
			foreach ( $config['buckets'] as $bucketName ) {
34 207
				$campaign->addBucket( new Bucket( $bucketName, $campaign, $bucketName === $config['default_bucket'] ) );
35
			}
36
37 207
			$campaigns[] = $campaign;
38
		}
39 207
		return $campaigns;
40
	}
41
}