Completed
Push — master ( 461f45...0bbf45 )
by Jacob
04:57
created

PhpQuickProfilerTest::testGatherMemoryData()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 9

Duplication

Lines 12
Ratio 100 %

Importance

Changes 1
Bugs 1 Features 1
Metric Value
c 1
b 1
f 1
dl 12
loc 12
rs 9.4286
cc 1
eloc 9
nc 1
nop 0
1
<?php
2
3
namespace Particletree\Pqp;
4
5
use PHPUnit_Framework_Testcase;
6
7
// namespace hack on microtime functionality
8
function microtime()
9
{
10
    return 1450355136.5706;
11
}
12
13
// namespace hack on included files functionality
14
function get_included_files()
15
{
16
    return array(
17
      'index.php',
18
      'src/Class.php'
19
    );
20
}
21
22
// namespace hack on filesize
23
function filesize($filename)
24
{
25
    return strlen($filename) * 100;
26
}
27
28
// namespace hack on memory usage
29
function memory_get_peak_usage()
30
{
31
    return 123456789;
32
}
33
34
// namespace hack on ini settings
35
function ini_get($setting)
36
{
37
    if ($setting == 'memory_limit') {
38
        return '128M';
39
    }
40
    return \ini_get($setting);
41
}
42
43
class PhpQuickProfilerTest extends PHPUnit_Framework_TestCase
44
{
45
46
    public function testConstruct()
47
    {
48
        $startTime = microtime(true);
49
50
        $profiler = new PhpQuickProfiler();
51
        $this->assertAttributeEquals($startTime, 'startTime', $profiler);
52
53
        $profiler = new PhpQuickProfiler($startTime);
54
        $this->assertAttributeEquals($startTime, 'startTime', $profiler);
55
    }
56
57
    public function testSetConsole()
58
    {
59
        $console = new Console();
60
        $profiler = new PhpQuickProfiler();
61
        $profiler->setConsole($console);
62
63
        $this->assertAttributeSame($console, 'console', $profiler);
64
    }
65
66
    public function testSetDisplay()
67
    {
68
        $display = new Display();
69
        $profiler = new PhpQuickProfiler();
70
        $profiler->setDisplay($display);
71
72
        $this->assertAttributeSame($display, 'display', $profiler);
73
    }
74
75 View Code Duplication
    public function testGatherFileData()
1 ignored issue
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
76
    {
77
        $files = get_included_files();
78
        $profiler = new PhpQuickProfiler();
79
        $gatheredFileData = $profiler->gatherFileData();
80
81
        foreach ($gatheredFileData as $fileData) {
82
            $this->assertArrayHasKey('name', $fileData);
83
            $this->assertContains($fileData['name'], $files);
84
            $this->assertArrayHasKey('size', $fileData);
85
            $this->assertEquals($fileData['size'], filesize($fileData['name']));
86
        }
87
    }
88
89 View Code Duplication
    public function testGatherMemoryData()
1 ignored issue
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
90
    {
91
        $memory_usage = memory_get_peak_usage();
92
        $allowed_limit = ini_get('memory_limit');
93
        $profiler = new PhpQuickProfiler();
94
        $gatheredMemoryData = $profiler->gatherMemoryData();
95
96
        $this->assertArrayHasKey('used', $gatheredMemoryData);
97
        $this->assertEquals($memory_usage, $gatheredMemoryData['used']);
98
        $this->assertArrayHasKey('allowed', $gatheredMemoryData);
99
        $this->assertEquals($allowed_limit, $gatheredMemoryData['allowed']);
100
    }
101
102
    public function testSetProfiledQueries()
103
    {
104
        $profiledQueries = array(
105
            'sql' => 'SELECT * FROM example',
106
            'time' => 25
107
        );
108
        $profiler = new PhpQuickProfiler();
109
        $profiler->setProfiledQueries($profiledQueries);
110
111
        $this->assertAttributeEquals($profiledQueries, 'profiledQueries', $profiler);
112
    }
113
}
114