function test_get_results()
 {
     $buffer = new AggregateStorageSearchBuffer();
     $ds = new MockDataSource();
     $ds->setReturnValueAt(0, 'search', 'foo');
     $ds->setReturnValueAt(1, 'search', 'bar');
     $comp1 = array('ds' => $ds, 'table' => 'table1');
     $comp2 = array('ds' => $ds, 'table' => 'table2');
     $buffer->search('cn1', $comp1, 'query1', 1, 2);
     $buffer->search('cn2', $comp2, 'query2', 3, 4);
     $expected = array(array('comp_name' => 'cn1', 'comp' => $comp1, 'results' => 'foo'), array('comp_name' => 'cn2', 'comp' => $comp2, 'results' => 'bar'));
     $this->assertEqual($expected, $buffer->get_results());
 }
 function test_search()
 {
     $table = '/test';
     $query_string = '{test=123}';
     // $criteria = Array('test'=>'123');
     $criteria = new QueryCriteria(array(QueryCriterionFactory::create(array('name' => 'test', 'value' => '123'))));
     $expected_results = array('data' => array(array('url' => '/test/123')), 'offset' => 0, 'count' => 1, 'total' => 1);
     $ds = new MockDataSource();
     // search will populate cache
     $this->cache->size = 20;
     $ds->expect('search', array($table, $query_string, 0, 20));
     $ds->setReturnValue('search', $expected_results);
     $results = $this->cache->search($ds, $table, $query_string, 0, 10, $criteria);
     $this->assertEqual($results, $expected_results);
     $this->assertEqual($this->cache->results, $expected_results);
     $this->assertEqual($this->cache->criteria, $criteria);
     // disable cache
     $this->cache->size = 0;
     $ds->expect('search', array($table, $query_string, 0, 10));
     $ds->setReturnValue('search', $expected_results);
     $results = $this->cache->search($ds, $table, $query_string, 0, 10, $criteria);
     $this->assertEqual($results, $expected_results);
 }