public static function createAccount($ninja_name, $email, $class_identity)
 {
     $found = Player::findByName($ninja_name);
     if ($found) {
         throw new Exception("Test user found [{$found}] with name [{$ninja_name}] already exists");
     }
     $ip = isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1';
     // Create test user, unconfirmed, whatever the default is for activity.
     $confirm = rand(1000, 9999);
     //generate confirmation code
     $class_id = query_item('SELECT class_id FROM class WHERE identity = :class_identity', [':class_identity' => $class_identity]);
     $ninja = new Player();
     $ninja->uname = $ninja_name;
     $ninja->verification_number = $confirm;
     $ninja->active = 1;
     $ninja->_class_id = $class_id;
     $ninja->save();
     Account::create($ninja->id(), $email, TestAccountCreateAndDestroy::$test_password, $confirm, 0, 1, $ip);
     if ($confirm) {
         $ninja->active = 1;
         $ninja->save();
         $account = Account::findByChar($ninja);
         $account->confirmed = 1;
         $account->setOperational(true);
         $account->save();
     }
     return $ninja->id();
 }