Add event unit tests for dynamic filters and names (#6785)
This commit is contained in:
parent
fdb931bb16
commit
be8783154e
2 changed files with 157 additions and 8 deletions
|
@ -332,7 +332,7 @@
|
|||
)}
|
||||
|
||||
#####
|
||||
# API(s) being tested: [event]delayed_variable_substitution
|
||||
# API(s) being tested: [event]delayed_variable_substitution=yes
|
||||
##
|
||||
# Actions:
|
||||
# Define a nested event with delayed_variable_substitution=yes
|
||||
|
@ -340,7 +340,7 @@
|
|||
# Expected end state:
|
||||
# The nested event delays substituting the variable's value until it executes, rather than when the outer event executes
|
||||
#####
|
||||
{GENERIC_UNIT_TEST "event_handers_in_events__delayed" (
|
||||
{GENERIC_UNIT_TEST "event_handlers_in_events__delayed" (
|
||||
[event]
|
||||
name=prestart
|
||||
{VARIABLE pass_test 0}
|
||||
|
@ -356,6 +356,42 @@
|
|||
[/event]
|
||||
)}
|
||||
|
||||
#####
|
||||
# API(s) being tested: [event]delayed_variable_substitution=yes, name=$variable
|
||||
##
|
||||
# Actions:
|
||||
# Define a nested event with delayed_variable_substitution=yes and a dynamic name
|
||||
##
|
||||
# Expected end state:
|
||||
# The nested event delays substituting the variable's value until it executes, rather than when the outer event executes
|
||||
# Because of this, the variable in the event name is substituted on the fly, so the event never executes.
|
||||
#####
|
||||
{GENERIC_UNIT_TEST "event_handlers_in_events__delayed__dynamic_name" (
|
||||
[event]
|
||||
name=turn 1
|
||||
{VARIABLE pass_test 0}
|
||||
|
||||
[event]
|
||||
name="turn $($turn_number + 1)"
|
||||
delayed_variable_substitution=yes
|
||||
{VARIABLE_OP pass_test add 1}
|
||||
[/event]
|
||||
|
||||
{VARIABLE pass_test 1}
|
||||
[end_turn][/end_turn]
|
||||
[/event]
|
||||
[event]
|
||||
name=side turn
|
||||
first_time_only=no
|
||||
[end_turn][/end_turn]
|
||||
[/event]
|
||||
[event]
|
||||
name=turn 2 end
|
||||
[end_turn][/end_turn]
|
||||
{RETURN ({VARIABLE_CONDITIONAL pass_test equals 1})}
|
||||
[/event]
|
||||
)}
|
||||
|
||||
#####
|
||||
# API(s) being tested: [event]delayed_variable_substitution
|
||||
##
|
||||
|
@ -365,7 +401,7 @@
|
|||
# Expected end state:
|
||||
# The nested event immediately substitutes the variable's value when the outer event executes
|
||||
#####
|
||||
{GENERIC_UNIT_TEST "event_handers_in_events__immediate" (
|
||||
{GENERIC_UNIT_TEST "event_handlers_in_events__immediate" (
|
||||
[event]
|
||||
name=prestart
|
||||
{VARIABLE pass_test 0}
|
||||
|
@ -382,17 +418,54 @@
|
|||
)}
|
||||
|
||||
#####
|
||||
# API(s) being tested: [event][insert_tag]
|
||||
# API(s) being tested: [event]delayed_variable_substitution=no, name=$variable
|
||||
##
|
||||
# Actions:
|
||||
# Define a nested event with delayed_variable_substitution=no and a dynamic name
|
||||
##
|
||||
# Expected end state:
|
||||
# The nested event immediately substitutes the variable's value when the outer event executes
|
||||
# Because of this, the variable in the event name is substituted immediately, so the event executes on the next turn.
|
||||
{GENERIC_UNIT_TEST "event_handlers_in_events__immediate__dynamic_name" (
|
||||
[event]
|
||||
name=turn 1
|
||||
{VARIABLE pass_test 0}
|
||||
|
||||
[event]
|
||||
name="turn $($turn_number + 1)"
|
||||
delayed_variable_substitution=no
|
||||
{VARIABLE_OP pass_test add 1}
|
||||
[/event]
|
||||
|
||||
{VARIABLE pass_test 1}
|
||||
[end_turn][/end_turn]
|
||||
[/event]
|
||||
[event]
|
||||
name=side turn
|
||||
first_time_only=no
|
||||
[end_turn][/end_turn]
|
||||
[/event]
|
||||
[event]
|
||||
name=turn 2 end
|
||||
[end_turn][/end_turn]
|
||||
{RETURN ({VARIABLE_CONDITIONAL pass_test equals 2})}
|
||||
[/event]
|
||||
)}
|
||||
|
||||
#####
|
||||
# API(s) being tested: [event]delayed_variable_substitution=yes[insert_tag]
|
||||
##
|
||||
# Actions:
|
||||
# Define a post_advance event which includes a filter created via [insert_tag]
|
||||
# Two units are created, exactly one of which matches the filter
|
||||
# Both units are advanced a level
|
||||
# The filter variable is changed to a race not present
|
||||
# Both units are advanced another level
|
||||
##
|
||||
# Expected end state:
|
||||
# The event was triggered exactly once
|
||||
#####
|
||||
{GENERIC_UNIT_TEST "event_handlers_in_events__dynamic_filter" (
|
||||
{GENERIC_UNIT_TEST "event_handlers_in_events__delayed__dynamic_filter" (
|
||||
[event]
|
||||
name=start
|
||||
{VARIABLE pass_test 0}
|
||||
|
@ -407,6 +480,7 @@
|
|||
[event]
|
||||
name=post_advance
|
||||
first_time_only=no
|
||||
delayed_variable_substitution=yes
|
||||
[insert_tag]
|
||||
name=filter
|
||||
variable=filter
|
||||
|
@ -420,10 +494,82 @@
|
|||
[/filter]
|
||||
experience=50
|
||||
[/modify_unit]
|
||||
[set_variables]
|
||||
name=filter
|
||||
[value]
|
||||
race=bat
|
||||
[/value]
|
||||
[/set_variables]
|
||||
[modify_unit]
|
||||
[filter]
|
||||
x=1,2
|
||||
y=1,2
|
||||
[/filter]
|
||||
experience=100
|
||||
[/modify_unit]
|
||||
{RETURN ({VARIABLE_CONDITIONAL pass_test equals 1})}
|
||||
[/event]
|
||||
)}
|
||||
|
||||
#####
|
||||
# API(s) being tested: [event]delayed_variable_substitution=no[insert_tag]
|
||||
##
|
||||
# Actions:
|
||||
# Define a post_advance event which includes a filter created via [insert_tag]
|
||||
# Two units are created, exactly one of which matches the filter
|
||||
# Both units are advanced a level
|
||||
# The filter variable is changed to a race not present
|
||||
# Both units are advanced another level
|
||||
##
|
||||
# Expected end state:
|
||||
# The event was triggered twice, because the [insert_tag] is substituted when the event was registered.
|
||||
#####
|
||||
{GENERIC_UNIT_TEST "event_handlers_in_events__immediate__dynamic_filter" (
|
||||
[event]
|
||||
name=start
|
||||
{VARIABLE pass_test 0}
|
||||
[set_variables]
|
||||
name=filter
|
||||
[value]
|
||||
race=elf
|
||||
[/value]
|
||||
[/set_variables]
|
||||
{UNIT 1 "Orcish Grunt" 1 1 ()}
|
||||
{UNIT 1 "Elvish Archer" 2 2 ()}
|
||||
[event]
|
||||
name=post_advance
|
||||
first_time_only=no
|
||||
delayed_variable_substitution=no
|
||||
[insert_tag]
|
||||
name=filter
|
||||
variable=filter
|
||||
[/insert_tag]
|
||||
{VARIABLE_OP pass_test add 1}
|
||||
[/event]
|
||||
[modify_unit]
|
||||
[filter]
|
||||
x=1,2
|
||||
y=1,2
|
||||
[/filter]
|
||||
experience=50
|
||||
[/modify_unit]
|
||||
[set_variables]
|
||||
name=filter
|
||||
[value]
|
||||
race=bat
|
||||
[/value]
|
||||
[/set_variables]
|
||||
[modify_unit]
|
||||
[filter]
|
||||
x=1,2
|
||||
y=1,2
|
||||
[/filter]
|
||||
experience=100
|
||||
[/modify_unit]
|
||||
{RETURN ({VARIABLE_CONDITIONAL pass_test equals 2})}
|
||||
[/event]
|
||||
)}
|
||||
|
||||
#####
|
||||
# API(s) being tested: [remove_event]
|
||||
##
|
||||
|
|
|
@ -119,9 +119,12 @@
|
|||
0 event_handlers_in_events_6
|
||||
0 event_handlers_in_events_7
|
||||
0 event_handlers_in_events_8
|
||||
0 event_handers_in_events__delayed
|
||||
0 event_handers_in_events__immediate
|
||||
0 event_handlers_in_events__dynamic_filter
|
||||
0 event_handlers_in_events__delayed
|
||||
0 event_handlers_in_events__delayed__dynamic_name
|
||||
0 event_handlers_in_events__delayed__dynamic_filter
|
||||
0 event_handlers_in_events__immediate
|
||||
0 event_handlers_in_events__immediate__dynamic_name
|
||||
0 event_handlers_in_events__immediate__dynamic_filter
|
||||
0 event_remove_test
|
||||
0 event_repeat_test
|
||||
0 event_test_auto_variables_side_turn
|
||||
|
|
Loading…
Add table
Reference in a new issue