Exemplo n.º 1
0
 /**
  * @depends testIteratesOverScan
  */
 public function testIteratesOverBatchGetItem()
 {
     self::log('Running BatchGetItem');
     $history = new HistoryPlugin();
     $this->client->addSubscriber($history);
     $iterator = $this->client->getIterator('BatchGetItem', array('RequestItems' => array($this->table => array('Keys' => array(array('HashKeyElement' => array('S' => 'Bar'), 'RangeKeyElement' => array('N' => '10')), array('HashKeyElement' => array('S' => 'Bar'), 'RangeKeyElement' => array('N' => '20')), array('HashKeyElement' => array('S' => 'Bar'), 'RangeKeyElement' => array('N' => '30'))), 'ConsistentRead' => true))));
     $items = $iterator->toArray();
     $this->client->getEventDispatcher()->removeSubscriber($history);
     // Ensure that the request was sent using consistent read
     $this->assertContains('"ConsistentRead":"true"', (string) $history->getLastRequest()->getBody());
     $this->assertTrue(count($items) >= 3);
     $this->assertTrue($iterator->getRequestCount() >= 1);
     $mustMatch = $this->rangeKeyValues;
     foreach ($items as $item) {
         if (false !== ($pos = array_search($item['bar']['N'], $mustMatch))) {
             unset($mustMatch[$pos]);
             if (empty($mustMatch)) {
                 break;
             }
         }
     }
     if (!empty($mustMatch)) {
         $this->fail('All known items were not found in scan: ' . var_export($mustMatch, true) . ' - found: ' . var_export($items, true));
     }
 }