Esempio n. 1
0
 public function testRestore()
 {
     # --------------------------------------------------------------------------
     DB::query("TRUNCATE users");
     # --------------------------------------------------------------------------
     # Insert some data
     DB::query("INSERT INTO users (username,password) VALUES ('admin','admin')");
     # --------------------------------------------------------------------------
     # Save the table
     DB::save('users');
     # Perform some query
     DB::query("TRUNCATE users");
     # Now users is recovered!
     DB::undo();
     # Check
     $this->assertEquals(DB::count(DB::query("SELECT * FROM users")), 1);
     # --------------------------------------------------------------------------
     # Save the table
     DB::save('users');
     # Perform some query
     DB::query("TRUNCATE users");
     # Now users is empty!
     DB::confirm();
     # Check
     $this->assertEquals(DB::count(DB::query("SELECT * FROM users")), 0);
     # After several rows of code...
     # Restore the LAST SAVE POINT
     DB::restore();
     # Check
     $this->assertEquals(DB::count(DB::query("SELECT * FROM users")), 1);
     # --------------------------------------------------------------------------
     # But WAIT! You can undo the previous restore!
     DB::restore();
     # Check
     $this->assertEquals(DB::count(DB::query("SELECT * FROM users")), 0);
     # --------------------------------------------------------------------------
     # Oh yeah, restore the restore of restore point! (undo x3)
     DB::restore();
     # Check
     $this->assertEquals(DB::count(DB::query("SELECT * FROM users")), 1);
     # --------------------------------------------------------------------------
     DB::query("TRUNCATE users");
     # --------------------------------------------------------------------------
 }