Files
abap-cheat-sheets/src/zcl_demo_abap_unit_test.clas.locals_imp.abap
2023-02-20 14:35:27 +01:00

74 lines
2.1 KiB
ABAP

******************************************************
* Local interface
******************************************************
INTERFACE lif_get_data.
TYPES: carr_tab TYPE TABLE OF zdemo_abap_fli WITH EMPTY KEY,
occ_rate TYPE p LENGTH 4 DECIMALS 2.
METHODS:
select_flight_data IMPORTING carrier TYPE zdemo_abap_fli-carrid
RETURNING VALUE(flight_data) TYPE carr_tab,
"This method is included to demonstrate the PARTIALLY IMPLEMENTED
"addition in the test class when implementing the test double
say_hello RETURNING VALUE(hi) TYPE string.
ENDINTERFACE.
******************************************************
* Local class
* The class implements the local interface.
******************************************************
CLASS lcl_data_prov_local_itf DEFINITION.
PUBLIC SECTION.
INTERFACES lif_get_data.
ENDCLASS.
CLASS lcl_data_prov_local_itf IMPLEMENTATION.
METHOD lif_get_data~select_flight_data.
SELECT seatsmax, seatsocc
FROM zdemo_abap_fli
WHERE carrid = @carrier
INTO CORRESPONDING FIELDS OF TABLE @flight_data.
ENDMETHOD.
METHOD lif_get_data~say_hello.
hi = `Hello, ` && sy-uname && `.`.
ENDMETHOD.
ENDCLASS.
******************************************************
* Local class that implements a global interface
* It serves the purpose of a data provider. It can be
* imagined as a global class, and a method that is
* implemented there and called by the class under test
* is identified as DOC. A local class is used in the
* example to keep the number of separate artifacts small.
******************************************************
CLASS lcl_data_prov_glo_itf DEFINITION.
PUBLIC SECTION.
INTERFACES zdemo_abap_get_data_itf.
ENDCLASS.
CLASS lcl_data_prov_glo_itf IMPLEMENTATION.
METHOD zdemo_abap_get_data_itf~select_flight_data.
SELECT seatsmax, seatsocc
FROM zdemo_abap_fli
WHERE carrid = @carrier
INTO CORRESPONDING FIELDS OF TABLE @flight_data.
ENDMETHOD.
METHOD zdemo_abap_get_data_itf~say_hello.
hi = `Hello, ` && sy-uname && `.`.
ENDMETHOD.
ENDCLASS.