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"); # -------------------------------------------------------------------------- }