_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):
%3 aa_equals aa_equals (public) aa_false aa_false (public) aa_log aa_log (public) aa_log_result aa_log_result (public) aa_run_with_teardown aa_run_with_teardown (public) _acs-authentication__sync_actions _acs-authentication__sync_actions _acs-authentication__sync_actions->aa_equals _acs-authentication__sync_actions->aa_false _acs-authentication__sync_actions->aa_log _acs-authentication__sync_actions->aa_log_result _acs-authentication__sync_actions->aa_run_with_teardown

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
[ hide source ] | [ make this the default ]
Show another procedure: