* @author craigb
 */
error_reporting(E_ALL | E_STRICT);
// includes
require_once dirname(dirname(__FILE__)) . '/util/ClassLoader.class.php';
ClassLoader::requireClassOnce('model/User');
ClassLoader::requireClassOnce('model/UserRole');
ClassLoader::requireClassOnce('model/UserPreferences');
ClassLoader::requireClassOnce('util/DbConnectionUtil');
// create a new test user
printf("Testing user creation...");
$testNetId = 'testNetId';
$testEmail = '*****@*****.**';
$testRealName = 'Test User';
$testRoleTypes = array(UserRole::USER_ROLE_TYPE_EDITOR, UserRole::USER_ROLE_TYPE_VIEWER);
$testUser = User::generateNewUser($testNetId, $testEmail, $testRealName, $testRoleTypes, TRUE);
print "PASSED\n";
// insert the new user
printf("Testing user insertion...");
$dbConnection = DbConnectionUtil::getDbConnection();
$testUser->save($dbConnection);
print "PASSED\n";
// retrieve the user
$userId = $testUser->getId();
printf("Testing user retrieval, id: {$userId} ...");
$testUser = NULL;
$testUser = User::loadUserByNetId($dbConnection, $testNetId);
// verify the retrieve user data
if (!$testUser) {
    print "FAILED: did not load user data\n";
    exit(-1);