104 lines
4.3 KiB
ABAP
104 lines
4.3 KiB
ABAP
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.
|