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

AddressesAwareTrait   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 88.89%

Importance

Changes 0
Metric Value
dl 0
loc 28
c 0
b 0
f 0
wmc 4
lcom 1
cbo 2
ccs 8
cts 9
cp 0.8889
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A setAddresses() 0 19 4
1
<?php
2
namespace Germania\Addresses;
3
4
trait AddressesAwareTrait
5
{
6
	use AddressesProviderTrait;
7
8
9
	/**
10
	 * @inheritDoc
11
	 */
12 10
	public function setAddresses(iterable $addresses) : self
13
	{
14
15 10
		if ($addresses instanceOf AddressesCollectionInterface):
16 4
			$this->addresses = $addresses;
17
		
18 6
		elseif (is_array($addresses)):
19 2
			$this->addresses = new AddressesCollection( $addresses );
20
21 4
		elseif ($addresses instanceOf \Traversable):
22 4
			$this->addresses = new AddressesCollection( iterator_to_array($addresses ));			
23
24
		else:
25
			throw new \InvalidArgumentException( "AddressesCollectionInterface or Array or Traversable expected"); 
26
27
		endif; 
28
29 10
		return $this;
30
	}
31
}