Add queuefile tests
git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@5266 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
136
Tests/queuefileTest.php
Normal file
136
Tests/queuefileTest.php
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user