Example #1
0
 /**
  * Tests Base->fetchAll()
  */
 public function testFetchAll()
 {
     // O padrão é não usar o campo deleted
     $albuns = $this->Base->fetchAll();
     $this->assertCount(4, $albuns, 'showDeleted=false, useDeleted=false');
     // Marca para mostrar os removidos e não usar o campo deleted
     $this->Base->setShowDeleted(true)->setUseDeleted(false);
     $this->assertCount(4, $this->Base->fetchAll(), 'showDeleted=true, useDeleted=false');
     // Marca pra não mostar os removidos e usar o campo deleted
     $this->Base->setShowDeleted(false)->setUseDeleted(true);
     $this->assertCount(3, $this->Base->fetchAll(), 'showDeleted=false, useDeleted=true');
     // Marca pra mostrar os removidos e usar o campo deleted
     $this->Base->setShowDeleted(true)->setUseDeleted(true);
     $albuns = $this->Base->fetchAll();
     $this->assertCount(4, $albuns, 'showDeleted=true, useDeleted=true');
     // Marca não mostrar os removios
     $this->Base->setUseDeleted(true)->setShowDeleted(false);
     $albuns = $this->defaultValues;
     unset($albuns[3]);
     // remove o deleted=1
     $this->assertEquals($albuns, $this->Base->fetchAll());
     // Marca mostrar os removios
     $this->Base->setShowDeleted(true);
     $this->assertEquals($this->defaultValues, $this->Base->fetchAll());
     $this->assertCount(4, $this->Base->fetchAll());
     $this->Base->setShowDeleted(false);
     $this->assertCount(3, $this->Base->fetchAll());
     // Verifica o where
     $this->assertCount(2, $this->Base->fetchAll(array('artist' => $albuns[0]['artist'])));
     $this->assertNull($this->Base->fetchAll(array('artist' => $this->defaultValues[3]['artist'])));
     // Verifica o paginator com o padrão
     $paginator = $this->Base->setUsePaginator(true)->fetchAll();
     $paginator = $paginator->toJson();
     // Tem um bug no Zend_Paginator
     //http://framework.zend.com/issues/browse/ZF-9731
     $paginator = (array) json_decode($paginator);
     $temp = array();
     foreach ($paginator as $p) {
         $temp[] = $p;
     }
     $paginator = json_encode($temp);
     $fetchAll = $this->Base->setUsePaginator(false)->fetchAll();
     $this->assertNotEquals(json_encode($this->defaultValues), $paginator);
     $this->assertEquals(json_encode($fetchAll), $paginator, 'retorno do paginator é igual');
     // Verifica o paginator alterando o paginator
     $this->Base->getPaginator()->setPageRange(2)->setCurrentPageNumber(1)->setItemCountPerPage(2);
     $paginator = $this->Base->setUsePaginator(true)->fetchAll();
     $paginator = $paginator->toJson();
     // Tem um bug no Zend_Paginator
     //http://framework.zend.com/issues/browse/ZF-9731
     $paginator = (array) json_decode($paginator);
     $temp = array();
     foreach ($paginator as $p) {
         $temp[] = $p;
     }
     $paginator = json_encode($temp);
     $this->assertNotEquals(json_encode($this->defaultValues), $paginator);
     $fetchAll = $this->Base->setUsePaginator(false)->fetchAll(null, null, 2);
     $this->assertEquals(json_encode($fetchAll), $paginator);
     // Apaga qualquer cache
     $this->assertTrue($this->Base->getCache()->clean(), 'apaga o cache');
     // Define exibir os deletados
     $this->Base->setShowDeleted(true);
     // Liga o cache
     $this->Base->setUseCache(true);
     $this->assertEquals($this->defaultValues, $this->Base->fetchAll(), 'fetchAll está igual ao defaultValues');
     $this->assertCount(4, $this->Base->fetchAll(), 'Deve conter 4 registros');
     // Grava um registro "sem o cache saber"
     $this->Base->getTableGateway()->insert(array('id' => 10, 'artist' => 'nao existo por enquanto', 'title' => 'bla bla', 'deleted' => 0));
     $this->assertCount(4, $this->Base->fetchAll(), 'Deve conter 4 registros depois do insert "sem o cache saber"');
     $this->assertTrue($this->Base->getCache()->clean(), 'limpa o cache');
     $this->assertCount(5, $this->Base->fetchAll(), 'Deve conter 5 registros');
     // Define não exibir os deletados
     $this->Base->setShowDeleted(false);
     $this->assertCount(4, $this->Base->fetchAll(), 'Deve conter 4 registros com showDeleted=false');
     // Apaga um registro "sem o cache saber"
     $this->Base->getTableGateway()->delete("id=10");
     $this->Base->setShowDeleted(true);
     $this->assertCount(5, $this->Base->fetchAll(), 'Deve conter 5 registros');
     $this->assertTrue($this->Base->getCache()->clean(), 'apaga o cache');
     $this->assertCount(4, $this->Base->fetchAll(), 'Deve conter 4 registros 4');
 }