CLASS {{p}}turb_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 revenue_of_turbine FOR TESTING. METHODS revenue_other_park FOR TESTING. METHODS revenue_rounded FOR TESTING. METHODS park_name_via_path FOR TESTING. METHODS country_via_path FOR TESTING. METHODS filter_by_country FOR TESTING. METHODS row_per_turbine FOR TESTING. METHODS nominal_kw_value FOR TESTING. METHODS yield_value FOR TESTING. METHODS park_id_value FOR TESTING. ENDCLASS. CLASS {{p}}turb_hidden IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_TURBINE' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_park TYPE STANDARD TABLE OF {{p}}wpark WITH EMPTY KEY. DATA lt_turb TYPE STANDARD TABLE OF {{p}}turbine WITH EMPTY KEY. go_env->clear_doubles( ). lt_park = VALUE #( ( park_id = 'P1' park_name = 'North Ridge' country = 'DE' tariff = '82.30' ) ( park_id = 'P2' park_name = 'Sunny Hills' country = 'AT' tariff = '50.00' ) ( park_id = 'P3' park_name = 'Coastal Wind' country = 'NL' tariff = '12.34' ) ). lt_turb = VALUE #( ( turbine_id = 'T1' park_id = 'P1' nominal_kw = 3000 yield_mwh = '1234.50' ) ( turbine_id = 'T2' park_id = 'P1' nominal_kw = 2000 yield_mwh = '100.00' ) ( turbine_id = 'T3' park_id = 'P3' nominal_kw = 1500 yield_mwh = '0.50' ) ( turbine_id = 'T4' park_id = 'P2' nominal_kw = 2500 yield_mwh = '10.00' ) ( turbine_id = 'T5' park_id = 'P3' nominal_kw = 1000 yield_mwh = '0.33' ) ). go_env->insert_test_data( lt_park ). go_env->insert_test_data( lt_turb ). ENDMETHOD. METHOD revenue_of_turbine. SELECT SINGLE revenue FROM {{p}}i_turbine WHERE turbine_id = 'T1' INTO @DATA(lv_revenue). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '101599.35' ) act = CONV decfloat34( lv_revenue ) ). ENDMETHOD. METHOD revenue_other_park. SELECT SINGLE revenue FROM {{p}}i_turbine WHERE turbine_id = 'T4' INTO @DATA(lv_revenue). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '500.00' ) act = CONV decfloat34( lv_revenue ) ). ENDMETHOD. METHOD revenue_rounded. SELECT SINGLE revenue FROM {{p}}i_turbine WHERE turbine_id = 'T5' INTO @DATA(lv_revenue). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '4.07' ) act = CONV decfloat34( lv_revenue ) ). ENDMETHOD. METHOD park_name_via_path. SELECT SINGLE \_PARK-park_name FROM {{p}}i_turbine WHERE turbine_id = 'T1' INTO @DATA(lv_name). cl_abap_unit_assert=>assert_equals( exp = 'North Ridge' act = lv_name ). ENDMETHOD. METHOD country_via_path. SELECT SINGLE \_PARK-country FROM {{p}}i_turbine WHERE turbine_id = 'T3' INTO @DATA(lv_country). cl_abap_unit_assert=>assert_equals( exp = 'NL' act = lv_country ). ENDMETHOD. METHOD filter_by_country. SELECT turbine_id, \_PARK-country AS country FROM {{p}}i_turbine INTO TABLE @DATA(lt_rows). DELETE lt_rows WHERE country <> 'DE'. cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_rows ) ). ENDMETHOD. METHOD row_per_turbine. SELECT turbine_id FROM {{p}}i_turbine INTO TABLE @DATA(lt_all). cl_abap_unit_assert=>assert_equals( exp = 5 act = lines( lt_all ) ). ENDMETHOD. METHOD nominal_kw_value. SELECT SINGLE nominal_kw FROM {{p}}i_turbine WHERE turbine_id = 'T2' INTO @DATA(lv_kw). cl_abap_unit_assert=>assert_equals( exp = 2000 act = lv_kw ). ENDMETHOD. METHOD yield_value. SELECT SINGLE yield_mwh FROM {{p}}i_turbine WHERE turbine_id = 'T3' INTO @DATA(lv_yield). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '0.50' ) act = CONV decfloat34( lv_yield ) ). ENDMETHOD. METHOD park_id_value. SELECT SINGLE park_id FROM {{p}}i_turbine WHERE turbine_id = 'T4' INTO @DATA(lv_park). cl_abap_unit_assert=>assert_equals( exp = 'P2' act = lv_park ). ENDMETHOD. ENDCLASS.