_acs-authentication__sync_actions (private)
_acs-authentication__sync_actions
Defined in packages/acs-authentication/tcl/test/sync-test-procs.tcl
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Source code: set _aa_export {} set body_count 1 foreach testcase_body {{ aa_run_with_teardown -rollback -test_code { # Start noninteractive job set job_id [auth::sync::job::start -authority_id [auth::authority::local]] aa_true "Returns a job_id" {[info exists job_id]} ##### # # Valid insert action # ##### array unset user_info set username1 [ad_generate_random_string] set email1 "[ad_generate_random_string]@foo.bar" set screen_name1 [ad_generate_random_string] set user_info(email) $email1 set user_info(first_names) [ad_generate_random_string] set user_info(last_name) [ad_generate_random_string] set user_info(url) "http://[ad_generate_random_string].com" set user_info(screen_name) $screen_name1 aa_log "--- Valid insert --- auth::sync::job::action -opration insert -username $username1 -email $email1" set entry_id [auth::sync::job::action -job_id $job_id -operation "insert" -username $username1 -array user_info] array unset entry auth::sync::job::get_entry -entry_id $entry_id -array entry aa_equals "entry.success_p" $entry(success_p) "t" aa_equals "entry.message" $entry(message) {} aa_equals "entry.element_messages" $entry(element_messages) {} aa_log "entry.user_id = '$entry(user_id)'" aa_log "entry.message = '$entry(message)'" aa_log "entry.element_messages = '$entry(element_messages)'" if { [aa_true "Entry has user_id set" {$entry(user_id) ne ""}] } { set user [acs_user::get -user_id $entry(user_id)] aa_equals "user.first_names" [dict get $user first_names] $user_info(first_names) aa_equals "user.last_name" [dict get $user last_name] $user_info(last_name) aa_equals "user.email" [dict get $user email] [string tolower $email1] aa_equals "user.authority_id" [dict get $user authority_id] [auth::authority::local] aa_equals "user.username" [dict get $user username] $username1 aa_equals "user.url" [dict get $user url] $user_info(url) aa_equals "user.screen_name" [dict get $user screen_name] $user_info(screen_name) } ##### # # Invalid insert action: Reusing username, email # ##### aa_log "--- Invalid insert: reusing username, email --- auth::sync::job::action -opration insert -username $username1 -email $email1" array unset user_info set user_info(first_names) [ad_generate_random_string] set user_info(last_name) [ad_generate_random_string] set user_info(email) $email1 set user_info(url) "http://" set entry_id [auth::sync::job::action -job_id $job_id -operation "insert" -username $username1 -array user_info] array unset entry auth::sync::job::get_entry -entry_id $entry_id -array entry aa_equals "entry.success_p" $entry(success_p) "f" aa_true "entry.message not empty" {$entry(message) ne ""} aa_log "entry.user_id = '$entry(user_id)'" aa_log "entry.message = '$entry(message)'" aa_log "entry.element_messages = '$entry(element_messages)'" ##### # # Valid update action # ##### set email2 "[ad_generate_random_string]@foo.bar" array unset user_info set user_info(first_names) [ad_generate_random_string] set user_info(last_name) [ad_generate_random_string] set user_info(url) "http://[ad_generate_random_string].com" set user_info(email) $email2 aa_log "--- Valid update --- auth::sync::job::action -opration update -username $username1" set entry_id [auth::sync::job::action -job_id $job_id -operation "update" -username $username1 -array user_info] array unset entry auth::sync::job::get_entry -entry_id $entry_id -array entry aa_equals "entry.success_p" $entry(success_p) "t" aa_equals "entry.message" $entry(message) {} aa_equals "entry.element_messages" $entry(element_messages) {} aa_log "entry.user_id = '$entry(user_id)'" aa_log "entry.message = '$entry(message)'" aa_log "entry.element_messages = '$entry(element_messages)'" if { [aa_true "Entry has user_id set" {$entry(user_id) ne ""}] } { set user [acs_user::get -user_id $entry(user_id)] aa_equals "user.first_names" [dict get $user first_names] $user_info(first_names) aa_equals "user.last_name" [dict get $user last_name] $user_info(last_name) aa_equals "user.email" [dict get $user email] [string tolower $email2] aa_equals "user.authority_id" [dict get $user authority_id] [auth::authority::local] aa_equals "user.username" [dict get $user username] $username1 aa_equals "user.url" [dict get $user url] $user_info(url) } ##### # # Valid update action, not changing any columns # ##### # copy the old user_info array array set user_info2 [array get user_info] array unset user_info aa_log "--- Valid update, no changes --- auth::sync::job::action -opration update -username $username1" set entry_id [auth::sync::job::action -job_id $job_id -operation "update" -username $username1 -array user_info] array unset entry auth::sync::job::get_entry -entry_id $entry_id -array entry aa_equals "entry.success_p" $entry(success_p) "t" aa_equals "entry.message" $entry(message) {} aa_equals "entry.element_messages" $entry(element_messages) {} aa_log "entry.user_id = '$entry(user_id)'" aa_log "entry.message = '$entry(message)'" aa_log "entry.element_messages = '$entry(element_messages)'" if { [aa_true "Entry has user_id set" {$entry(user_id) ne ""}] } { set user [acs_user::get -user_id $entry(user_id)] aa_equals "user.first_names" [dict get $user first_names] $user_info2(first_names) aa_equals "user.last_name" [dict get $user last_name] $user_info2(last_name) aa_equals "user.email" [dict get $user email] $user_info2(email) aa_equals "user.authority_id" [dict get $user authority_id] [auth::authority::local] aa_equals "user.username" [dict get $user username] $username1 aa_equals "user.url" [dict get $user url] $user_info2(url) } ##### # # Invalid insert action: Missing first_names, last_name invalid, email, url invalid # ##### set username2 [ad_generate_random_string] array unset user_info set user_info(last_name) {<b>Foobar</b>} set user_info(email) "not_an_email" set user_info(url) "NotAURL" aa_log "--- Invalid insert --- auth::sync::job::action -opration update -username $username2" set entry_id [auth::sync::job::action -job_id $job_id -operation "insert" -username $username2 -array user_info] array unset entry auth::sync::job::get_entry -entry_id $entry_id -array entry aa_equals "entry.success_p" $entry(success_p) "f" aa_log "entry.message = '$entry(message)'" if { [aa_true "entry.element_messages not empty" {[info exists entry(element_messages)] && $entry(element_messages) ne ""}] } { aa_log "entry.element_messages = '$entry(element_messages)'" array unset elm_msgs array set elm_msgs $entry(element_messages) aa_log "array names elm_msgs = '[array names elm_msgs]'" aa_true "first_names, last_name, email, url have problems" [util_sets_equal_p { first_names last_name email url } [array names elm_msgs]] } ##### # # Valid delete action # ##### aa_log "--- Valid delete --- auth::sync::job::action -opration delete -username $username1" set entry_id [auth::sync::job::action -job_id $job_id -operation "delete" -username $username1] array unset entry auth::sync::job::get_entry -entry_id $entry_id -array entry aa_equals "entry.success_p" $entry(success_p) "t" aa_log "entry.message = '$entry(message)'" if { [aa_true "Entry has user_id set" {[info exists entry(user_id)] && $entry(user_id) ne ""}] } { set member_state [acs_user::get_user_info -user_id $entry(user_id) -element "member_state"] aa_equals "User member state is banned" $member_state "banned" } ##### # # End job # ##### array set job [auth::sync::job::end -job_id $job_id] aa_true "Elapsed time less than 30 seconds" {$job(run_time_seconds) < 30} aa_false "Not interactive" [string is true -strict $job(interactive_p)] aa_equals "Number of actions" $job(num_actions) 6 aa_equals "Number of problems" $job(num_problems) 2 aa_false "Log URL nonempty" {$job(log_url) eq ""} } }} { aa_log "Running testcase body $body_count" set ::__aa_test_indent [info level] set catch_val [catch $testcase_body msg] if {$catch_val != 0 && $catch_val != 2} { aa_log_result "fail" "sync_actions (body $body_count): Error during execution: $msg, stack trace: \n$::errorInfo" } incr body_count }XQL Not present: Generic, PostgreSQL, Oracle