public static function testUser(SQLiteDB $db)
 {
     static $userinfo = array('username' => 'testuser', 'password' => 'testpassword', 'email' => 'testemail', 'phone_number' => 'testphone', 'carrier' => 'testcarrier');
     static $userinfo_2 = array('username' => 'testuser2', 'password' => 'testpassword2', 'email' => 'testemail2', 'phone_number' => 'testphone2', 'carrier' => 'testcarrier2');
     // SQLiteUser::create test
     $user = SQLiteUser::create($userinfo, $db);
     if ($user === NULL) {
         throw new Exception('SQLiteUser::create test failed');
     }
     // SQLiteUser::find test
     $find_user = SQLiteUser::find('username', $userinfo['username'], $db);
     if ($find_user === NULL) {
         throw new Exception('SQLiteUser::find test failed');
     }
     // SQLiteUser::delete test
     $user->delete();
     $deleted_user = SQLiteUser::find('username', $userinfo['username'], $db);
     if ($deleted_user !== NULL) {
         throw new Exception('SQLiteUser::delete test failed');
     }
     // SQLiteUser::get test
     $user = SQLiteUser::create($userinfo, $db);
     $get_userinfo = $user->get(array_keys($userinfo));
     if ($get_userinfo != $userinfo) {
         throw new Exception('SQLiteUser::get test failed');
     }
     // SQLiteUser::get no-carrier-as-attr test
     $userinfo_nocarrier = $userinfo;
     unset($userinfo_nocarrier['carrier']);
     $get_userinfo_nocarrier = $user->get(array_keys($userinfo_nocarrier));
     if ($get_userinfo_nocarrier != $userinfo_nocarrier) {
         throw new Exception('SQLiteUser::get no-carrier-as-attr test failed');
     }
     // SQLiteUser::set test
     $user->set($userinfo_2);
     $set_userinfo = $user->get(array_keys($userinfo_2));
     if ($set_userinfo != $userinfo_2) {
         throw new Exception('SQLiteUser::set test failed');
     }
     // SQLiteUser::set no-carrier-as-attr test
     $userinfo_2_nocarrier = $userinfo_2;
     unset($userinfo_2_nocarrier['carrier']);
     $get_userinfo_2_nocarrier = $user->get(array_keys($userinfo_2_nocarrier));
     if ($get_userinfo_2_nocarrier != $userinfo_2_nocarrier) {
         throw new Exception('SQLiteUser::set no-carrier-as-attr test failed');
     }
     // SQLiteUser::__get test
     $get_username = $user->get(array('username'));
     if ($user->username !== $get_username['username']) {
         throw new Exception('SQLiteUser::__get test failed');
     }
     // SQLiteUser::__set test
     $user->username = '******';
     if ($user->username !== 'newusername') {
         throw new Exception('SQLiteUser::__set test failed');
     }
     $user->delete();
 }