turning Filter::formatHumanReadableTime() test case into property based one, clarifying the allowed units

This commit is contained in:
El RIDO 2017-02-26 12:47:54 +01:00
parent e41f0a7561
commit 79dafd5af4
No known key found for this signature in database
GPG Key ID: 0F5C940A6BD81F92
3 changed files with 47 additions and 13 deletions

View File

@ -39,7 +39,9 @@ class Filter
/** /**
* format a given time string into a human readable label (localized) * format a given time string into a human readable label (localized)
* *
* accepts times in the format "[integer][time unit]" * accepts times in the format "[integer][time unit]", valid time units are:
* sec, second, seconds, min, minute, minutes, hour, hours, day, days, week,
* weeks, month, months, year, years
* *
* @access public * @access public
* @static * @static

View File

@ -1,9 +1,12 @@
<?php <?php
use PrivateBin\Filter; use PrivateBin\Filter;
use Eris\Generator;
class FilterTest extends PHPUnit_Framework_TestCase class FilterTest extends PHPUnit_Framework_TestCase
{ {
use Eris\TestTrait;
public function testFilterStripsSlashesDeeply() public function testFilterStripsSlashesDeeply()
{ {
$this->assertEquals( $this->assertEquals(
@ -14,10 +17,43 @@ class FilterTest extends PHPUnit_Framework_TestCase
public function testFilterMakesTimesHumanlyReadable() public function testFilterMakesTimesHumanlyReadable()
{ {
$this->assertEquals('5 minutes', Filter::formatHumanReadableTime('5min')); $this->forAll(
$this->assertEquals('90 seconds', Filter::formatHumanReadableTime('90sec')); Generator\nat(),
$this->assertEquals('1 week', Filter::formatHumanReadableTime('1week')); Generator\oneOf(
$this->assertEquals('6 months', Filter::formatHumanReadableTime('6months')); 'sec', 'second', 'seconds'
)
)->then(
function ($int, $unit)
{
$suffix = $int === 1 ? '' : 's';
$this->assertEquals($int . ' second' . $suffix, Filter::formatHumanReadableTime($int . $unit));
}
);
$this->forAll(
Generator\nat(),
Generator\oneOf(
'min', 'minute', 'minutes'
)
)->then(
function ($int, $unit)
{
$suffix = $int === 1 ? '' : 's';
$this->assertEquals($int . ' minute' . $suffix, Filter::formatHumanReadableTime($int . $unit));
}
);
$this->forAll(
Generator\nat(),
Generator\oneOf(
'hour', 'hours', 'day', 'days', 'week', 'weeks',
'month', 'months', 'year', 'years'
)
)->then(
function ($int, $unit)
{
$suffix = $int === 1 ? '' : 's';
$this->assertEquals($int . ' ' . rtrim($unit, 's') . $suffix, Filter::formatHumanReadableTime($int . $unit));
}
);
} }
/** /**

View File

@ -41,16 +41,14 @@ class Vizhash16x16Test extends PHPUnit_Framework_TestCase
$vz = new Vizhash16x16(); $vz = new Vizhash16x16();
$pngdata = $vz->generate($string1); $pngdata = $vz->generate($string1);
if (empty($string1)) if (empty($string1)) {
{
$this->assertEquals($pngdata, ''); $this->assertEquals($pngdata, '');
} else { } else {
$this->assertNotEquals($pngdata, ''); $this->assertNotEquals($pngdata, '');
file_put_contents($this->_file, $pngdata); file_put_contents($this->_file, $pngdata);
$finfo = new finfo(FILEINFO_MIME_TYPE); $finfo = new finfo(FILEINFO_MIME_TYPE);
$this->assertEquals('image/png', $finfo->file($this->_file)); $this->assertEquals('image/png', $finfo->file($this->_file));
if ($string1 !== $string2) if ($string1 !== $string2) {
{
$this->assertNotEquals($pngdata, $string2); $this->assertNotEquals($pngdata, $string2);
} }
} }
@ -73,8 +71,7 @@ class Vizhash16x16Test extends PHPUnit_Framework_TestCase
file_put_contents($this->_file, $pngdata); file_put_contents($this->_file, $pngdata);
$finfo = new finfo(FILEINFO_MIME_TYPE); $finfo = new finfo(FILEINFO_MIME_TYPE);
$this->assertEquals('image/png', $finfo->file($this->_file)); $this->assertEquals('image/png', $finfo->file($this->_file));
if ($hash1 !== $hash2) if ($hash1 !== $hash2) {
{
$this->assertNotEquals($pngdata, $vz->generate($hash2)); $this->assertNotEquals($pngdata, $vz->generate($hash2));
} }
$this->assertEquals($pngdata, $vz->generate($hash1)); $this->assertEquals($pngdata, $vz->generate($hash1));
@ -96,8 +93,7 @@ class Vizhash16x16Test extends PHPUnit_Framework_TestCase
file_put_contents($this->_file, $pngdata); file_put_contents($this->_file, $pngdata);
$finfo = new finfo(FILEINFO_MIME_TYPE); $finfo = new finfo(FILEINFO_MIME_TYPE);
$this->assertEquals('image/png', $finfo->file($this->_file)); $this->assertEquals('image/png', $finfo->file($this->_file));
if ($hash1 !== $hash2) if ($hash1 !== $hash2) {
{
$this->assertNotEquals($pngdata, $vz->generate($hash2)); $this->assertNotEquals($pngdata, $vz->generate($hash2));
} }
$this->assertEquals($pngdata, $vz->generate($hash1)); $this->assertEquals($pngdata, $vz->generate($hash1));