Added a search function

This commit is contained in:
Rob Gloudemans
2013-05-31 08:00:30 +02:00
parent 951c4a8b0f
commit c0210e033a
2 changed files with 27 additions and 1 deletions

View File

@@ -211,7 +211,7 @@ class Cart {
* @param Array $options Array of additional options, such as 'size' or 'color' * @param Array $options Array of additional options, such as 'size' or 'color'
* @return boolean * @return boolean
*/ */
protected function generateRowId($id, $options) public function generateRowId($id, $options)
{ {
return md5($id . serialize($options)); return md5($id . serialize($options));
} }
@@ -344,4 +344,16 @@ class Cart {
return $this->updateRow($rowId, $attributes); return $this->updateRow($rowId, $attributes);
} }
public function search($search)
{
foreach($this->getContent() as $item)
{
$rowId = $this->generateRowId($search['id'], $search['options']);
if($rowId === $item->rowid) return true;
}
return false;
}
} }

View File

@@ -189,4 +189,18 @@ class CartTest extends TestCase {
$this->assertEquals($count, 2); $this->assertEquals($count, 2);
} }
public function testCartCanSearch()
{
Cart::add(1, 'test', 1, 10.00, ['size' => 'L']);
Cart::add(2, 'test', 2, 10.00, ['size' => 'L']);
$search = Cart::search(['id' => 1, 'options' => ['size' => 'L']]);
$this->assertTrue($search);
$search = Cart::search(['id' => 3, 'options' => ['size' => 'L']]);
$this->assertFalse($search);
}
} }