Ejemplo n.º 1
0
 public function testBasics()
 {
     $a = PicoraActiveRecord::build('Album');
     $this->assertFalse($a->id);
     $a = PicoraActiveRecord::build('Album', array('name' => 'Dark Side of the Moon', 'artist' => 'Pink Floyd', 'time' => '43:23', 'track_count' => 0));
     $this->assertFalse($a->id);
     $this->assertEqual($a->name, 'Dark Side of the Moon');
     $this->assertEqual($a->time, '43:23');
     $this->assertTrue($a->save());
     $this->assertEqual($a->id, 1);
     $b = PicoraActiveRecord::create('Album', array('name' => 'Piper at the Gates of Dawn', 'artist' => 'Pink Floyd', 'time' => '42:10', 'track_count' => 0));
     $this->assertEqual($b->id, 2);
     $this->assertEqual($b->name, 'Piper at the Gates of Dawn');
     $this->assertEqual($a, PicoraActiveRecord::find('Album', 1));
     $this->assertEqual($b, PicoraActiveRecord::find('Album', 2));
     $this->assertEqual($a, PicoraActiveRecord::findByField('Album', 'name', 'Dark Side of the Moon'));
     $this->assertEqual($b, PicoraActiveRecord::findByField('Album', 'time', '42:10'));
     $c = PicoraActiveRecord::build('Album');
     $c->artist = 'Broken Social Scene';
     $c->name = 'You Forgot it in People';
     $c->time = '64:12';
     $c->track_count = 0;
     $this->assertTrue($c->save());
     $this->assertEqual(3, PicoraActiveRecord::count('Album'));
     $this->assertEqual(2, PicoraActiveRecord::count('Album', array('where' => 'artist = "Pink Floyd"')));
     $this->assertEqual(2, count(PicoraActiveRecord::findAllByField('Album', 'artist', 'Pink Floyd')));
     $this->assertEqual(1, count(PicoraActiveRecord::findAllByField('Album', 'artist', 'Broken Social Scene')));
     $c->time = '64:13';
     $this->assertTrue($c->save());
     $this->assertEqual($c, PicoraActiveRecord::find('Album', 3));
     $this->assertEqual(3, count(PicoraActiveRecord::findAll('Album')));
     $this->assertEqual(2, count(PicoraActiveRecord::findAll('Album', array('where' => 'id IN (1,2)'))));
     $result = PicoraActiveRecord::findAll('Album', array('where' => 'id IN (1,2)', 'order' => 'id ASC'));
     $this->assertEqual(1, $result[0]['id']);
     $this->assertEqual(2, $result[1]['id']);
     $result = PicoraActiveRecord::findAll('Album', array('where' => 'id IN (1,2)', 'order' => 'id DESC'));
     $this->assertEqual(2, $result[0]['id']);
     $this->assertEqual(1, $result[1]['id']);
     $result = PicoraActiveRecord::findAll('Album', array('limit' => 2, 'order' => 'id ASC'));
     $this->assertEqual(1, $result[0]['id']);
     $this->assertEqual(2, $result[1]['id']);
     $result = PicoraActiveRecord::findAll('Album', array('limit' => 2, 'offset' => 1, 'order' => 'id ASC'));
     $this->assertEqual(2, $result[0]['id']);
     $this->assertEqual(3, $result[1]['id']);
     $this->assertEqual(array(), PicoraActiveRecord::findAll('Album', array('where' => 'id = 5')));
     $this->assertEqual(3, PicoraActiveRecord::count('Album'));
     PicoraActiveRecord::find('Album', 1)->delete();
     $this->assertEqual(2, PicoraActiveRecord::count('Album'));
     PicoraActiveRecord::find('Album', 2)->delete();
     $this->assertEqual(1, PicoraActiveRecord::count('Album'));
     PicoraActiveRecord::find('Album', 3)->delete();
     $this->assertEqual(0, PicoraActiveRecord::count('Album'));
 }