Add queuefile tests

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@5266 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2019-05-13 07:37:22 +00:00
parent 78965f36af
commit 6ead95ebbf
2 changed files with 152 additions and 4 deletions

136
Tests/queuefileTest.php Normal file
View File

@@ -0,0 +1,136 @@
<?php
/** DomFramework - Tests
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** Test the queuefile.php file */
class test_queuefile extends PHPUnit_Framework_TestCase
{
public function test_clean ()
{
if (file_exists ("/tmp/queuefileTest/queuefileTest.json"))
unlink ("/tmp/queuefileTest/queuefileTest.json");
}
public function test_add1 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->add ("test1");
$this->assertSame (true, is_object ($res));
}
public function test_count1 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->count ();
$this->assertSame (1, $res);
}
public function test_add2 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->add ("test2");
$this->assertSame (true, is_object ($res));
}
public function test_count2 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->count ();
$this->assertSame (2, $res);
}
public function test_getFirst1 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->getFirst ();
$this->assertSame ("test1", $res);
}
public function test_getLast1 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->getLast ();
$this->assertSame ("test2", $res);
}
public function test_getRange1 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->getRange (1, 1);
$this->assertSame (["test2"], $res);
}
public function test_getRange2 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->getRange (0, 2);
$this->assertSame (["test1", "test2"], $res);
}
public function test_getRange3 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$this->expectException ();
$res = $queuefile->getRange (0, 3);
}
public function test_getAll1 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->getAll ();
$this->assertSame (["test1", "test2"], $res);
}
// AFTER THIS TEST THE FILE WILL BE EMPTY
public function test_getAll2 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->clear ();
$this->assertSame (true, is_object ($res));
}
public function test_count3 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->count ();
$this->assertSame (0, $res);
}
public function test_getAll3 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->getAll ();
$this->assertSame ([], $res);
}
public function test_getFirst2 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->getFirst ();
$this->assertSame (null, $res);
}
public function test_getLast2 ()
{
$queuefile = new queuefile ();
$queuefile->connect ("file:///tmp/queuefileTest/queuefileTest.json");
$res = $queuefile->getLast ();
$this->assertSame (null, $res);
}
}

View File

@@ -70,10 +70,12 @@ class queuefile extends queue
else
$file->lockSH ($this->queue);
$content = $file->file_get_contents ($this->queue);
$entries = array ();
foreach (explode ("\n", $content) as $json)
$entries = explode ("\n", $content);
// Explode return always one empty entry at end. Remove it
array_pop ($entries);
foreach ($entries as $key => $val)
{
$entries[] = json_decode ($json);
$entries[$key] = json_decode ($val);
}
if ($delete)
$file->file_put_contents ($this->queue, "");
@@ -125,6 +127,8 @@ class queuefile extends queue
$file->lockSH ($this->queue);
$content = $file->file_get_contents ($this->queue);
$entries = explode ("\n", $content);
// Explode return always one empty entry at end. Remove it
array_pop ($entries);
if (count ($entries) === 0)
$res = null;
else
@@ -155,6 +159,8 @@ class queuefile extends queue
$file->lockSH ($this->queue);
$content = $file->file_get_contents ($this->queue);
$entries = explode ("\n", $content);
// Explode return always one empty entry at end. Remove it
array_pop ($entries);
if (count ($entries) === 0)
$res = null;
else
@@ -171,7 +177,8 @@ class queuefile extends queue
// }}}
/** Get X entries starting at position Y
* @param integer $start the starting position
* @param integer $start the starting position (the entries start at position
* zero)
* @param integer $number The number of entries to get
* @param boolean|null $delete If true, delete the read entries
* @return array An array of mixed entries
@@ -186,13 +193,18 @@ class queuefile extends queue
$file->lockSH ($this->queue);
$content = $file->file_get_contents ($this->queue);
$entries = explode ("\n", $content);
// Explode return always one empty entry at end. Remove it
array_pop ($entries);
$res = array ();
if (count ($entries) > 0)
{
for ($i = $start ; $i < $start + $number ; $i++)
{
if (! key_exists ($i, $entries))
{
$file->lockUN ($this->queue);
throw new \Exception ("Invalid entry requested", 406);
}
$json = $entries[$i];
$content = json_decode ($json, true);
if (json_last_error() === JSON_ERROR_NONE)