CLASS {{p}}t20_hidden 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 deviation_below FOR TESTING. METHODS deviation_zero FOR TESTING. METHODS deviation_above FOR TESTING. METHODS percent_rounded FOR TESTING. METHODS status_hold FOR TESTING. METHODS status_warn FOR TESTING. METHODS status_load FOR TESTING. METHODS status_at_five_pct FOR TESTING. METHODS unweighed_hidden FOR TESTING. METHODS customer_shown FOR TESTING. ENDCLASS. CLASS {{p}}t20_hidden IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_CONT_WEIGHT' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_cont TYPE STANDARD TABLE OF {{p}}cont WITH EMPTY KEY. DATA lt_weigh TYPE STANDARD TABLE OF {{p}}weigh WITH EMPTY KEY. go_env->clear_doubles( ). lt_cont = VALUE #( ( cont_id = 'C1' customer = 'ALPHA' decl_kg = '1000.00' max_kg = '1200.00' ) ( cont_id = 'C2' customer = 'BETA' decl_kg = '1000.00' max_kg = '1200.00' ) ( cont_id = 'C3' customer = 'GAMMA' decl_kg = '1000.00' max_kg = '1200.00' ) ( cont_id = 'C4' customer = 'DELTA' decl_kg = '500.00' max_kg = '600.00' ) ( cont_id = 'C5' customer = 'EPSILON' decl_kg = '1000.00' max_kg = '1200.00' ) ( cont_id = 'C6' customer = 'ZETA' decl_kg = '1000.00' max_kg = '1200.00' ) ( cont_id = 'C7' customer = 'ETA' decl_kg = '800.00' max_kg = '900.00' ) ( cont_id = 'C8' customer = 'THETA' decl_kg = '300.00' max_kg = '400.00' ) ). lt_weigh = VALUE #( ( cont_id = 'C1' meas_kg = '1020.00' ) ( cont_id = 'C2' meas_kg = '1100.00' ) ( cont_id = 'C3' meas_kg = '1300.00' ) ( cont_id = 'C4' meas_kg = '450.00' ) ( cont_id = 'C5' meas_kg = '950.00' ) ( cont_id = 'C7' meas_kg = '800.00' ) ( cont_id = 'C8' meas_kg = '310.00' ) ). go_env->insert_test_data( lt_cont ). go_env->insert_test_data( lt_weigh ). ENDMETHOD. METHOD deviation_below. SELECT SINGLE deviation_kg FROM {{p}}i_cont_weight WHERE cont_id = 'C4' INTO @DATA(lv_dev). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '50.00' ) act = CONV decfloat34( lv_dev ) ). ENDMETHOD. METHOD deviation_zero. SELECT SINGLE deviation_kg FROM {{p}}i_cont_weight WHERE cont_id = 'C7' INTO @DATA(lv_dev). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '0.00' ) act = CONV decfloat34( lv_dev ) ). ENDMETHOD. METHOD deviation_above. SELECT SINGLE deviation_kg FROM {{p}}i_cont_weight WHERE cont_id = 'C1' INTO @DATA(lv_dev). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '20.00' ) act = CONV decfloat34( lv_dev ) ). ENDMETHOD. METHOD percent_rounded. SELECT SINGLE deviation_pct FROM {{p}}i_cont_weight WHERE cont_id = 'C8' INTO @DATA(lv_pct). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '3.33' ) act = CONV decfloat34( lv_pct ) ). ENDMETHOD. METHOD status_hold. SELECT SINGLE status FROM {{p}}i_cont_weight WHERE cont_id = 'C3' INTO @DATA(lv_status). cl_abap_unit_assert=>assert_equals( exp = 'HOLD' act = lv_status ). ENDMETHOD. METHOD status_warn. SELECT SINGLE status FROM {{p}}i_cont_weight WHERE cont_id = 'C2' INTO @DATA(lv_status). cl_abap_unit_assert=>assert_equals( exp = 'WARN' act = lv_status ). ENDMETHOD. METHOD status_load. SELECT SINGLE status FROM {{p}}i_cont_weight WHERE cont_id = 'C1' INTO @DATA(lv_status). cl_abap_unit_assert=>assert_equals( exp = 'LOAD' act = lv_status ). ENDMETHOD. METHOD status_at_five_pct. SELECT SINGLE status FROM {{p}}i_cont_weight WHERE cont_id = 'C5' INTO @DATA(lv_status). cl_abap_unit_assert=>assert_equals( exp = 'LOAD' act = lv_status ). ENDMETHOD. METHOD unweighed_hidden. SELECT COUNT(*) FROM {{p}}i_cont_weight INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 7 act = lv_rows ). ENDMETHOD. METHOD customer_shown. SELECT SINGLE customer FROM {{p}}i_cont_weight WHERE cont_id = 'C4' INTO @DATA(lv_cust). cl_abap_unit_assert=>assert_equals( exp = 'DELTA' act = lv_cust ). ENDMETHOD. ENDCLASS.