CLASS {{p}}forge_test DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. CLASS-DATA go_env TYPE REF TO if_cds_test_environment. CLASS-METHODS class_setup. CLASS-METHODS class_teardown. METHODS setup. METHODS shows_open_job FOR TESTING. METHODS hides_done_job FOR TESTING. METHODS effort_boundary FOR TESTING. ENDCLASS. CLASS {{p}}forge_test IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_FORGE_JOB' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_job TYPE STANDARD TABLE OF {{p}}forgjob WITH EMPTY KEY. DATA lt_art TYPE STANDARD TABLE OF {{p}}forgart WITH EMPTY KEY. DATA lt_cus TYPE STANDARD TABLE OF {{p}}forgcus WITH EMPTY KEY. go_env->clear_doubles( ). lt_job = VALUE #( ( job_id = 'C1' article_id = 'X1' job_date = '20240401' work_min = 180 job_state = 'O' ) ( job_id = 'C2' article_id = 'X1' job_date = '20240402' work_min = 20 job_state = 'D' ) ( job_id = 'C3' article_id = 'X1' job_date = '20240403' work_min = 121 job_state = 'O' ) ). lt_art = VALUE #( ( article_id = 'X1' customer_id = 'D1' article_name = 'GRID' weight_kg = 55 ) ). lt_cus = VALUE #( ( customer_id = 'D1' customer_name = 'SMITH' city = 'ESSEN' ) ). go_env->insert_test_data( lt_job ). go_env->insert_test_data( lt_art ). go_env->insert_test_data( lt_cus ). ENDMETHOD. METHOD shows_open_job. SELECT SINGLE job_id, article_name, customer_name, effort FROM {{p}}i_forge_job WHERE job_id = 'C1' INTO @DATA(ls_row). cl_abap_unit_assert=>assert_equals( exp = 'C1' act = ls_row-job_id ). cl_abap_unit_assert=>assert_equals( exp = 'GRID' act = ls_row-article_name ). cl_abap_unit_assert=>assert_equals( exp = 'SMITH' act = ls_row-customer_name ). cl_abap_unit_assert=>assert_equals( exp = 'HEAVY' act = ls_row-effort ). ENDMETHOD. METHOD hides_done_job. SELECT COUNT(*) FROM {{p}}i_forge_job WHERE job_id = 'C2' INTO @DATA(lv_count). cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_count ). ENDMETHOD. METHOD effort_boundary. SELECT SINGLE effort FROM {{p}}i_forge_job WHERE job_id = 'C3' INTO @DATA(lv_effort). cl_abap_unit_assert=>assert_equals( exp = 'HEAVY' act = lv_effort ). ENDMETHOD. ENDCLASS.