Completed
Push — v2.0.x ( 11273c...f488cd )
by Florent
04:53 queued 01:28
created

CompressionTest   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 99
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5
Metric Value
wmc 8
lcom 1
cbo 5
dl 0
loc 99
rs 10
1
<?php
2
3
/*
4
 * The MIT License (MIT)
5
 *
6
 * Copyright (c) 2014-2016 Spomky-Labs
7
 *
8
 * This software may be modified and distributed under the terms
9
 * of the MIT license.  See the LICENSE file for details.
10
 */
11
12
use Jose\Compression\CompressionManager;
13
use Jose\Compression\Deflate;
14
use Jose\Compression\GZip;
15
use Jose\Compression\ZLib;
16
17
/**
18
 * Class CompressionTest.
19
 */
20
class CompressionTest extends \PHPUnit_Framework_TestCase
21
{
22
    /**
23
     *
24
     */
25
    public function testGetValidCompressionAlgorithm()
26
    {
27
        $manager = new CompressionManager();
28
        $manager->addCompressionAlgorithm(new Deflate());
29
        $manager->addCompressionAlgorithm(new GZip());
30
        $manager->addCompressionAlgorithm(new ZLib());
31
32
        $compression = $manager->getCompressionAlgorithm('DEF');
33
        $this->assertInstanceOf('Jose\Compression\CompressionInterface', $compression);
34
    }
35
36
    /**
37
     *
38
     */
39
    public function testGetInvalidCompressionAlgorithm()
40
    {
41
        $manager = new CompressionManager();
42
        $manager->addCompressionAlgorithm(new Deflate());
43
        $manager->addCompressionAlgorithm(new GZip());
44
        $manager->addCompressionAlgorithm(new ZLib());
45
46
        $compression = $manager->getCompressionAlgorithm('FOO');
47
        $this->assertNull($compression);
48
    }
49
50
    /**
51
     *
52
     */
53
    public function testDeflate()
54
    {
55
        $compression = new Deflate(9);
56
57
        $data = 'Je suis Charlie';
58
        $compressed = $compression->compress($data);
59
        $uncompressed = $compression->uncompress($compressed);
60
        $this->assertNotNull($compressed);
61
        $this->assertSame($data, $uncompressed);
62
    }
63
64
    /**
65
     *
66
     */
67
    public function testGZip()
68
    {
69
        $compression = new GZip(9);
70
71
        $data = 'Je suis Charlie';
72
        $compressed = $compression->compress($data);
73
        $uncompressed = $compression->uncompress($compressed);
74
        $this->assertNotNull($compressed);
75
        $this->assertSame($data, $uncompressed);
76
    }
77
78
    /**
79
     *
80
     */
81
    public function testZLib()
82
    {
83
        $compression = new ZLib(9);
84
85
        $data = 'Je suis Charlie';
86
        $compressed = $compression->compress($data);
87
        $uncompressed = $compression->uncompress($compressed);
88
        $this->assertNotNull($compressed);
89
        $this->assertSame($data, $uncompressed);
90
    }
91
92
    /**
93
     * @expectedException \InvalidArgumentException
94
     * @expectedExceptionMessage The level of compression can be given as 0 for no compression up to 9 for maximum compression. If -1 given, the default compression level will be the default compression level of the zlib library.
95
     */
96
    public function testDeflateInvalidCompressionLevel()
97
    {
98
        new Deflate(100);
99
    }
100
101
    /**
102
     * @expectedException \InvalidArgumentException
103
     * @expectedExceptionMessage The level of compression can be given as 0 for no compression up to 9 for maximum compression. If -1 given, the default compression level will be the default compression level of the zlib library.
104
     */
105
    public function testGZipInvalidCompressionLevel()
106
    {
107
        new GZip(100);
108
    }
109
110
    /**
111
     * @expectedException \InvalidArgumentException
112
     * @expectedExceptionMessage The level of compression can be given as 0 for no compression up to 9 for maximum compression. If -1 given, the default compression level will be the default compression level of the zlib library.
113
     */
114
    public function testZLibInvalidCompressionLevel()
115
    {
116
        new ZLib(100);
117
    }
118
}
119