Skip to content

Commit

Permalink
Better abstraction of unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
slusarz committed Dec 29, 2014
1 parent 21c889d commit 0bf739c
Show file tree
Hide file tree
Showing 7 changed files with 143 additions and 167 deletions.
16 changes: 14 additions & 2 deletions framework/Compress_Fast/package.xml
Expand Up @@ -10,7 +10,7 @@
<email>slusarz@horde.org</email>
<active>yes</active>
</lead>
<date>2014-12-27</date>
<date>2014-12-29</date>
<version>
<release>1.1.0</release>
<api>1.1.0</api>
Expand Down Expand Up @@ -53,6 +53,13 @@
<dir name="Horde">
<dir name="Compress">
<dir name="Fast">
<dir name="Driver">
<file name="Lz4Test.php" role="test" />
<file name="LzfTest.php" role="test" />
<file name="NullTest.php" role="test" />
<file name="TestBase.php" role="test" />
<file name="ZlibTest.php" role="test" />
</dir> <!-- /test/Horde/Compress/Fast/Driver -->
<file name="AllTests.php" role="test" />
<file name="bootstrap.php" role="test" />
<file name="CompressFastTest.php" role="test" />
Expand Down Expand Up @@ -119,6 +126,11 @@
<install as="Horde/Compress/Fast/bootstrap.php" name="test/Horde/Compress/Fast/bootstrap.php" />
<install as="Horde/Compress/Fast/CompressFastTest.php" name="test/Horde/Compress/Fast/CompressFastTest.php" />
<install as="Horde/Compress/Fast/phpunit.xml" name="test/Horde/Compress/Fast/phpunit.xml" />
<install as="Horde/Compress/Fast/Driver/Lz4Test.php" name="test/Horde/Compress/Fast/Driver/Lz4Test.php" />
<install as="Horde/Compress/Fast/Driver/LzfTest.php" name="test/Horde/Compress/Fast/Driver/LzfTest.php" />
<install as="Horde/Compress/Fast/Driver/NullTest.php" name="test/Horde/Compress/Fast/Driver/NullTest.php" />
<install as="Horde/Compress/Fast/Driver/TestBase.php" name="test/Horde/Compress/Fast/Driver/TestBase.php" />
<install as="Horde/Compress/Fast/Driver/ZlibTest.php" name="test/Horde/Compress/Fast/Driver/ZlibTest.php" />
</filelist>
</phprelease>
<changelog>
Expand Down Expand Up @@ -183,7 +195,7 @@
<stability>
<release>stable</release>
<api>stable</api></stability>
<date>2014-12-27</date>
<date>2014-12-29</date>
<license uri="http://www.horde.org/licenses/lgpl21">LGPL-2.1</license>
<notes>
* [mms] Add zlib driver and allow it to be considered a &apos;fast&apos; compression driver (disabled by default).
Expand Down
165 changes: 0 additions & 165 deletions framework/Compress_Fast/test/Horde/Compress/Fast/CompressFastTest.php
Expand Up @@ -12,171 +12,6 @@
*/
class Horde_Compress_Fast_CompressFastTest extends Horde_Test_Case
{
private $compress_text = 'Foo Foo Foo Foo Foo Foo Foo Foo Foo Foo';

public function testConstructor()
{
$ob = new Horde_Compress_Fast();

if (extension_loaded('horde_lz4')) {
$this->assertEquals(
'Horde_Compress_Fast_Lz4',
$ob->driver
);
} elseif (extension_loaded('lzf')) {
$this->assertEquals(
'Horde_Compress_Fast_Lzf',
$ob->driver
);
} else {
$this->assertEquals(
'Horde_Compress_Fast_Null',
$ob->driver
);
}

$ob = new Horde_Compress_Fast(array(
'drivers' => array(
'Horde_Compress_Fast_Null'
)
));

$this->assertEquals(
'Horde_Compress_Fast_Null',
$ob->driver
);
}

public function testNullDriverCompress()
{
$ob = new Horde_Compress_Fast(array(
'drivers' => array(
'Horde_Compress_Fast_Null'
)
));

$this->assertEquals(
$this->compress_text,
$ob->compress($this->compress_text)
);

try {
$ob->compress(array());
$this->fail('Expected exception.');
} catch (Horde_Compress_Fast_Exception $e) {}
}

public function testNullDriverDecompress()
{
$ob = new Horde_Compress_Fast(array(
'drivers' => array(
'Horde_Compress_Fast_Null'
)
));

$this->assertEquals(
$this->compress_text,
$ob->decompress($this->compress_text)
);

try {
$ob->decompress(new stdClass);
$this->fail('Expected exception.');
} catch (Horde_Compress_Fast_Exception $e) {}
}

public function testLzfDriverCompress()
{
try {
$ob = new Horde_Compress_Fast(array(
'drivers' => array(
'Horde_Compress_Fast_Lzf'
)
));
} catch (Horde_Compress_Fast_Exception $e) {
$this->markTestSkipped('LZF extension not available.');
}

$this->assertEquals(
lzf_compress($this->compress_text),
$ob->compress($this->compress_text)
);

try {
$ob->compress(array());
$this->fail('Expected exception.');
} catch (Horde_Compress_Fast_Exception $e) {}
}

public function testLzfDriverDecompress()
{
try {
$ob = new Horde_Compress_Fast(array(
'drivers' => array(
'Horde_Compress_Fast_Lzf'
)
));
} catch (Horde_Compress_Fast_Exception $e) {
$this->markTestSkipped('LZF extension not available.');
}

$this->assertEquals(
$this->compress_text,
$ob->decompress(lzf_compress($this->compress_text))
);

try {
$ob->decompress(new stdClass);
$this->fail('Expected exception.');
} catch (Horde_Compress_Fast_Exception $e) {}
}

public function testLz4DriverCompress()
{
try {
$ob = new Horde_Compress_Fast(array(
'drivers' => array(
'Horde_Compress_Fast_Lz4'
)
));
} catch (Horde_Compress_Fast_Exception $e) {
$this->markTestSkipped('Horde LZ4 extension not available.');
}

$this->assertEquals(
horde_lz4_compress($this->compress_text),
$ob->compress($this->compress_text)
);

try {
$ob->compress(array());
$this->fail('Expected exception.');
} catch (Horde_Compress_Fast_Exception $e) {}
}

public function testLz4DriverDecompress()
{
try {
$ob = new Horde_Compress_Fast(array(
'drivers' => array(
'Horde_Compress_Fast_Lz4'
)
));
} catch (Horde_Compress_Fast_Exception $e) {
$this->markTestSkipped('Horde LZ4 extension not available.');
}

$this->assertEquals(
$this->compress_text,
$ob->decompress(horde_lz4_compress($this->compress_text))
);

try {
$ob->decompress(new stdClass);
$this->fail('Expected exception.');
} catch (Horde_Compress_Fast_Exception $e) {}
}

/**
* @dataProvider providerTestStringInput
*/
Expand Down
@@ -0,0 +1,17 @@
<?php
/**
* @category Horde
* @package Compress_Fast
* @subpackage UnitTests
*/

/**
* @category Horde
* @package Compress_Fast
* @subpackage UnitTests
*/
class Horde_Compress_Fast_Driver_Lz4Test
extends Horde_Compress_Fast_Driver_TestBase
{
protected $classname = 'Horde_Compress_Fast_Lz4';
}
@@ -0,0 +1,17 @@
<?php
/**
* @category Horde
* @package Compress_Fast
* @subpackage UnitTests
*/

/**
* @category Horde
* @package Compress_Fast
* @subpackage UnitTests
*/
class Horde_Compress_Fast_Driver_LzfTest
extends Horde_Compress_Fast_Driver_TestBase
{
protected $classname = 'Horde_Compress_Fast_Lzf';
}
@@ -0,0 +1,17 @@
<?php
/**
* @category Horde
* @package Compress_Fast
* @subpackage UnitTests
*/

/**
* @category Horde
* @package Compress_Fast
* @subpackage UnitTests
*/
class Horde_Compress_Fast_Driver_NullTest
extends Horde_Compress_Fast_Driver_TestBase
{
protected $classname = 'Horde_Compress_Fast_Null';
}
@@ -0,0 +1,61 @@
<?php
/**
* @category Horde
* @package Compress_Fast
* @subpackage UnitTests
*/

/**
* @category Horde
* @package Compress_Fast
* @subpackage UnitTests
*/
class Horde_Compress_Fast_Driver_TestBase extends Horde_Test_Case
{
protected $classname;

private $compress_text = 'Foo Foo Foo Foo Foo Foo Foo Foo Foo Foo';
private $ob;

protected function setUp()
{
if (!call_user_func(array($this->classname, 'supported'))) {
$this->markTestSkipped(
sprintf('Driver %s is not available.', $this->classname)
);
}

$this->ob = new Horde_Compress_Fast(array(
'drivers' => array($this->classname)
));
}

public function testCompress()
{
$data = $this->ob->decompress(
$this->ob->compress($this->compress_text)
);

$this->assertEquals(
$this->compress_text,
$data
);
}

/**
* @expectedException Horde_Compress_Fast_Exception
*/
public function testBadCompress()
{
$this->ob->compress(array());
}

/**
* @expectedException Horde_Compress_Fast_Exception
*/
public function testBadDecompress()
{
$this->ob->decompress(new stdClass);
}

}
@@ -0,0 +1,17 @@
<?php
/**
* @category Horde
* @package Compress_Fast
* @subpackage UnitTests
*/

/**
* @category Horde
* @package Compress_Fast
* @subpackage UnitTests
*/
class Horde_Compress_Fast_Driver_ZlibTest
extends Horde_Compress_Fast_Driver_TestBase
{
protected $classname = 'Horde_Compress_Fast_Zlib';
}

0 comments on commit 0bf739c

Please sign in to comment.