09-03-2018 8:06 AM
Hi experts,
i try to test my ALV OO with a unit test.
So basiclly i try following:
Setup ALV
Load Data in ALV
Change Data (eg. just one cell) in ALV
Trigger handle_data_changed
Check if everything worked fine
So far i´ve tried with something like that:
https://blogs.sap.com/2013/08/13/trigger-alv-datachange-event-manual/
I know is supposed to be changed in the Frontend, but i guess is somehow possible just by code.
My code for the unit test method is:
f_cut->setup_alv( ).
f_cut->tickets->lt_ticketlist = me->create_ticketlist( ).
f_cut->tickets->go_alv_grid->refresh_table_display( ).
READ TABLE f_cut->tickets->lt_ticketlist ASSIGNING <ls_ticketlist> WITH KEY object_id = '4000010502'.
<ls_ticketlist>-pos = 2.
DATA: it_pos TYPE lvc_t_pos.
DATA: is_pos TYPE LVC_S_POS.
is_pos-fieldname = 'POS'.is_pos-row_id = 6.
APPEND is_pos to it_pos.
f_cut->tickets->go_alv_grid->change_data_from_inside( it_cells = it_pos ).
f_cut->tickets->go_alv_grid->if_cached_prop~set_prop(
EXPORTING
PROPNAME = 'GridModified'
PROPVALUE = '1').
f_cut->tickets->go_alv_grid->check_changed_data( ).
09-03-2018 3:10 PM
Got it on my own.
It was quiet simple
ls_delta_cells-row_id = sy-tabix.
ls_delta_cells-fieldname = lv_fieldname.
ls_delta_cells-value = lv_value.
APPEND ls_delta_cells TO lt_delta_cells.
go_alv_grid->set_delta_cells(
EXPORTING
it_delta_cells = lt_delta_cells
i_modified = abap_true
).
go_alv_grid->check_changed_data( IMPORTING e_valid = lv_valid ).
That triggers data_changed
09-03-2018 3:10 PM
Got it on my own.
It was quiet simple
ls_delta_cells-row_id = sy-tabix.
ls_delta_cells-fieldname = lv_fieldname.
ls_delta_cells-value = lv_value.
APPEND ls_delta_cells TO lt_delta_cells.
go_alv_grid->set_delta_cells(
EXPORTING
it_delta_cells = lt_delta_cells
i_modified = abap_true
).
go_alv_grid->check_changed_data( IMPORTING e_valid = lv_valid ).
That triggers data_changed