HasTransactionsTrait   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 1
dl 0
loc 30
ccs 0
cts 10
cp 0
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getTransactions() 0 4 1
A addTransaction() 0 11 2
1
<?php
2
3
namespace ByTIC\GoogleAnalytics\Tracking\Data\Tracker;
4
5
use ByTIC\GoogleAnalytics\Tracking\Data\Ecommerce\Transaction;
6
use InvalidArgumentException;
7
8
/**
9
 * Trait HasTransactionsTrait
10
 * @package ByTIC\GoogleAnalytics\Tracking\Data\Tracker
11
 */
12
trait HasTransactionsTrait
13
{
14
    /**
15
     * @var Transaction[]
16
     */
17
    protected $transactions = [];
18
19
    /**
20
     * @return Transaction[]
21
     */
22
    public function getTransactions()
23
    {
24
        return $this->transactions;
25
    }
26
27
    /**
28
     * @param Transaction $transaction
29
     */
30
    public function addTransaction(Transaction $transaction)
31
    {
32
        $id = $transaction->getId();
33
        if (array_key_exists($id, $this->transactions)) {
34
            throw new InvalidArgumentException(sprintf(
35
                'Cannot add transaction with id %s, it already exists',
36
                $id
37
            ));
38
        }
39
        $this->transactions[$id] = $transaction;
40
    }
41
}
42