Completed
Push — master ( 0db8da...fd044c )
by Olivier
02:12
created

AbstractManager::handleNotFoundException()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 6
ccs 4
cts 4
cp 1
rs 9.4285
cc 2
eloc 3
nc 2
nop 1
crap 2
1
<?php
2
3
namespace Ola\RabbitMqAdminToolkitBundle\Manager;
4
5
use Guzzle\Http\Exception\ClientErrorResponseException;
6
7
abstract class AbstractManager
8
{
9
    /**
10
     * @param ClientErrorResponseException $e
11
     */
12 8
    protected function handleNotFoundException(ClientErrorResponseException $e)
13
    {
14 8
        if ($e->getResponse()->getStatusCode() !== 404) {
15 1
            throw $e;
16
        }
17 7
    }
18
19
    /**
20
     * @param $configuration
21
     * @param $remoteConfiguration
22
     *
23
     * @return bool
24
     */
25 3
    protected function isUpToDate($configuration, $remoteConfiguration)
26
    {
27 3
        $diff = $this->array_diff_assoc_recursive($configuration, $remoteConfiguration);
28
29 3
        foreach ($remoteConfiguration as $k => $v) {
30 3
            if (!isset($configuration[$k])) {
31 3
                unset($remoteConfiguration[$k]);
32
            }
33
        }
34
35 3
        $diff = array_merge_recursive(
36
            $diff,
37 3
            $this->array_diff_assoc_recursive($remoteConfiguration, $configuration)
38
        );
39
40 3
        return empty($diff);
41
    }
42
43 3
    private function array_diff_assoc_recursive($array1, $array2) {
44 3
        $difference=array();
45 3
        foreach($array1 as $key => $value) {
46 3
            if( is_array($value) ) {
47 1
                if( !isset($array2[$key]) || !is_array($array2[$key]) ) {
48
                    $difference[$key] = $value;
49
                } else {
50 1
                    $new_diff = $this->array_diff_assoc_recursive($value, $array2[$key]);
51 1
                    if( !empty($new_diff) )
52 1
                        $difference[$key] = $new_diff;
53
                }
54 3
            } else if( !array_key_exists($key,$array2) || $array2[$key] !== $value ) {
55 3
                $difference[$key] = $value;
56
            }
57
        }
58 3
        return $difference;
59
    }
60
}
61