CLASS {{p}}t33_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 small_grade FOR TESTING. METHODS medium_grade FOR TESTING. METHODS large_grade FOR TESTING. METHODS height_in_metres FOR TESTING. METHODS grade_text_value FOR TESTING. METHODS row_count FOR TESTING. METHODS species_shown FOR TESTING. ENDCLASS. CLASS {{p}}t33_hidden IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_PLANT_GRADE' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_plant TYPE STANDARD TABLE OF {{p}}plant WITH EMPTY KEY. go_env->clear_doubles( ). lt_plant = VALUE #( ( tree_id = 'T1' species = 'OAK' height_cm = 99 ) ( tree_id = 'T2' species = 'OAK' height_cm = 150 ) ( tree_id = 'T3' species = 'PINE' height_cm = 200 ) ( tree_id = 'T4' species = 'PINE' height_cm = 100 ) ( tree_id = 'T5' species = 'BIRCH' height_cm = 199 ) ( tree_id = 'T6' species = 'BIRCH' height_cm = 250 ) ). go_env->insert_test_data( lt_plant ). ENDMETHOD. METHOD small_grade. DATA lv_grade TYPE c LENGTH 1. SELECT SINGLE grade FROM {{p}}i_plant_grade WHERE tree_id = 'T1' INTO @lv_grade. cl_abap_unit_assert=>assert_equals( exp = 'S' act = lv_grade ). ENDMETHOD. METHOD medium_grade. DATA lv_grade TYPE c LENGTH 1. SELECT SINGLE grade FROM {{p}}i_plant_grade WHERE tree_id = 'T2' INTO @lv_grade. cl_abap_unit_assert=>assert_equals( exp = 'M' act = lv_grade ). SELECT SINGLE grade FROM {{p}}i_plant_grade WHERE tree_id = 'T4' INTO @lv_grade. cl_abap_unit_assert=>assert_equals( exp = 'M' act = lv_grade ). SELECT SINGLE grade FROM {{p}}i_plant_grade WHERE tree_id = 'T5' INTO @lv_grade. cl_abap_unit_assert=>assert_equals( exp = 'M' act = lv_grade ). ENDMETHOD. METHOD large_grade. DATA lv_grade TYPE c LENGTH 1. SELECT SINGLE grade FROM {{p}}i_plant_grade WHERE tree_id = 'T3' INTO @lv_grade. cl_abap_unit_assert=>assert_equals( exp = 'L' act = lv_grade ). SELECT SINGLE grade FROM {{p}}i_plant_grade WHERE tree_id = 'T6' INTO @lv_grade. cl_abap_unit_assert=>assert_equals( exp = 'L' act = lv_grade ). ENDMETHOD. METHOD height_in_metres. SELECT SINGLE height_m FROM {{p}}i_plant_grade WHERE tree_id = 'T2' INTO @DATA(lv_height). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '1.50' ) act = CONV decfloat34( lv_height ) ). ENDMETHOD. METHOD grade_text_value. DATA lv_text TYPE c LENGTH 30. SELECT SINGLE grade_text FROM {{p}}i_plant_grade WHERE tree_id = 'T1' INTO @lv_text. cl_abap_unit_assert=>assert_equals( exp = 'S-OAK' act = lv_text ). SELECT SINGLE grade_text FROM {{p}}i_plant_grade WHERE tree_id = 'T3' INTO @lv_text. cl_abap_unit_assert=>assert_equals( exp = 'L-PINE' act = lv_text ). ENDMETHOD. METHOD row_count. SELECT COUNT(*) FROM {{p}}i_plant_grade INTO @DATA(lv_count). cl_abap_unit_assert=>assert_equals( exp = 6 act = lv_count ). ENDMETHOD. METHOD species_shown. SELECT SINGLE species FROM {{p}}i_plant_grade WHERE tree_id = 'T3' INTO @DATA(lv_species). cl_abap_unit_assert=>assert_equals( exp = 'PINE' act = lv_species ). ENDMETHOD. ENDCLASS.