Test Failed
Push — master ( b38a80...6ef0e3 )
by Carsten
02:34 queued 13s
created

AddressesProviderTrait::getAddresses()   A

Complexity

Conditions 5
Paths 5

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 7.3471

Importance

Changes 0
Metric Value
dl 0
loc 21
c 0
b 0
f 0
ccs 6
cts 11
cp 0.5455
rs 9.2728
cc 5
nc 5
nop 0
crap 7.3471
1
<?php
2
namespace Germania\Addresses;
3
4
trait AddressesProviderTrait
5
{
6
7
	/**
8
	 * @var AddressesCollectionInterface
9
	 */
10
	public $addresses = array();
11
12
13
	/**
14
	 * @inheritDoc
15
	 */
16 12
	public function getAddresses() : AddressesCollectionInterface
17
	{
18 12
		if ($this->addresses instanceOf AddressesCollectionInterface):
19 10
			return $this->addresses;
20
		
21 2
		elseif (is_array($this->addresses)):
22 2
			$this->addresses = new AddressesCollection( $this->addresses );
23
24
		elseif ($this->addresses instanceOf \Traversable):
25
			$this->addresses = new AddressesCollection( iterator_to_array($this->addresses ));			
26
27
		elseif (empty($this->addresses)):
28
			$this->addresses = new AddressesCollection;			
29
30
		else:
31
			throw new \UnexpectedValueException( "AddressesCollectionInterface or Array or Traversable expected"); 
32
33
		endif; 
34
35 2
		return $this->addresses;
36
	}
37
}