function testRandomString() { $this->assertEquals(preg_match('/^[A-Za-z0-9]{8}$/', PSU::randomString(8)), 1, 'Length test: 8'); $this->assertEquals(preg_match('/^[A-Za-z0-9]{20}$/', PSU::randomString(20)), 1, 'Length test: 20'); $this->assertEquals(preg_match('/^[0-9]{20}$/', PSU::randomString(20, '0123456789')), 1, 'Pattern test (numbers)'); $this->assertEquals(preg_match('/^A{20}$/', PSU::randomString(20, 'A')), 1, 'Pattern test (letter A)'); $s = PSU::randomString(62, null, false); $len = strlen($s); $found = array(); for ($i = 0; $i < $len; $i++) { $c = $s[$i]; $found[$c] = true; } $this->assertTrue(count($found) === 62, 'no duplicates'); }
/** * insert id/pin data */ public function insertSABNSTU() { // insert sabnstu data // use commonapplicationClientID as the SABNSTU_ID // generate a random pin using PSUTools // first check sabiden to see if person already has an application $aidm = $this->checkSABIDEN($this->commonapplicantclientid); if ($aidm) { psu::puke("This person, Client ID: " . $this->commonapplicantclientid . " is already in sabiden."); } if (!$aidm) { $aidm = PSU::db('banner')->GetOne("SELECT sabaseq.nextval FROM dual"); } $pin = PSU::randomString(6, "1234567890"); $client_id = $this->commonapplicantclientid; $sql = "INSERT INTO sabnstu (\n\t\t\t\t\t\t\t\tsabnstu_id,\n\t\t\t\t\t\t\t\tsabnstu_aidm,\n\t\t\t\t\t\t\t\tsabnstu_locked_ind,\n\t\t\t\t\t\t\t\tsabnstu_pin,\n\t\t\t\t\t\t\t\tsabnstu_activity_date\n\t\t\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t\t\tlpad(:client_id,9,'0'),\n\t\t\t\t\t\t\t\t:aidm,\n\t\t\t\t\t\t\t\t'N',\n\t\t\t\t\t\t\t\t:pin,\n\t\t\t\t\t\t\t\tsysdate\n\t\t\t\t\t\t\t)"; $rs = PSU::db('banner')->Execute($sql, compact('client_id', 'aidm', 'pin')); if ($rs) { $successfully_moved_to_banner = true; } else { $successfully_moved_to_banner = false; psu::puke($client_id . " Failed trying to insert into Banner table SABNSTU."); } return $successfully_moved_to_banner; }