CLASS {{p}}t31_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 all_bricks_shown FOR TESTING. METHODS mould_kept FOR TESTING. METHODS mould_family FOR TESTING. METHODS volume_of_brick FOR TESTING. METHODS weight_in_kg FOR TESTING. METHODS class_large FOR TESTING. METHODS class_medium FOR TESTING. METHODS class_small FOR TESTING. METHODS class_boundary FOR TESTING. ENDCLASS. CLASS {{p}}t31_hidden IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_BRICK_SIZE' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_brick TYPE STANDARD TABLE OF {{p}}brick WITH EMPTY KEY. go_env->clear_doubles( ). lt_brick = VALUE #( ( brick_id = 'B1' mould = 'NF01' length_mm = 240 width_mm = 115 height_mm = 71 weight_g = 3200 ) ( brick_id = 'B2' mould = 'WF02' length_mm = 300 width_mm = 200 height_mm = 150 weight_g = 8000 ) ( brick_id = 'B3' mould = 'NF03' length_mm = 200 width_mm = 100 height_mm = 50 weight_g = 1500 ) ( brick_id = 'B4' mould = 'BLK1' length_mm = 250 width_mm = 120 height_mm = 80 weight_g = 5000 ) ). go_env->insert_test_data( lt_brick ). ENDMETHOD. METHOD all_bricks_shown. SELECT COUNT(*) FROM {{p}}i_brick_size INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 4 act = lv_rows ). ENDMETHOD. METHOD mould_kept. SELECT SINGLE mould FROM {{p}}i_brick_size WHERE brick_id = 'B2' INTO @DATA(lv_mould). cl_abap_unit_assert=>assert_equals( exp = 'WF02' act = lv_mould ). ENDMETHOD. METHOD mould_family. SELECT SINGLE mould_family FROM {{p}}i_brick_size WHERE brick_id = 'B4' INTO @DATA(lv_family). cl_abap_unit_assert=>assert_equals( exp = 'BL' act = lv_family ). ENDMETHOD. METHOD volume_of_brick. SELECT SINGLE volume_cm3 FROM {{p}}i_brick_size WHERE brick_id = 'B1' INTO @DATA(lv_volume). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '1959.6' ) act = CONV decfloat34( lv_volume ) ). ENDMETHOD. METHOD weight_in_kg. SELECT SINGLE weight_kg FROM {{p}}i_brick_size WHERE brick_id = 'B2' INTO @DATA(lv_weight). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '8' ) act = CONV decfloat34( lv_weight ) ). ENDMETHOD. METHOD class_large. SELECT SINGLE size_class FROM {{p}}i_brick_size WHERE brick_id = 'B2' INTO @DATA(lv_class). cl_abap_unit_assert=>assert_equals( exp = 'L' act = lv_class ). ENDMETHOD. METHOD class_medium. SELECT SINGLE size_class FROM {{p}}i_brick_size WHERE brick_id = 'B1' INTO @DATA(lv_class). cl_abap_unit_assert=>assert_equals( exp = 'M' act = lv_class ). ENDMETHOD. METHOD class_small. SELECT SINGLE size_class FROM {{p}}i_brick_size WHERE brick_id = 'B3' INTO @DATA(lv_class). cl_abap_unit_assert=>assert_equals( exp = 'S' act = lv_class ). ENDMETHOD. METHOD class_boundary. SELECT SINGLE size_class FROM {{p}}i_brick_size WHERE brick_id = 'B4' INTO @DATA(lv_class). cl_abap_unit_assert=>assert_equals( exp = 'L' act = lv_class ). ENDMETHOD. ENDCLASS.