"!

Unit-Tests für Demonstrationsklasse für BRF+ Anwendung

"!

(c) Ralf Wenzel, Heuristika Unternehmensberatung, Hamburg

"! Diese Unit-Tests zeigen einige Beispiele für die Anwendung "! der Demonstrationsklasse für die BRF+ Anwendung CLASS ltc_fc_simple_test DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. TYPES: "! Struktur der Eingabedaten in das BRF+-Regelwerk "! Diese Typen finden Verwendung in Methodenschnittstellen, "! daher müssen sie hier definiert werden. __import_parameters TYPE s_carr_id. TYPES: "! Struktur vom BRF+ Regelwerk erzeugten Ausgabedaten "! Diese Typen finden Verwendung in Methodenschnittstellen, "! daher müssen sie hier definiert werden. __brf_result TYPE text255. DATA brf_prototyp TYPE REF TO yif_brf_prototyp. DATA brf_result TYPE ycl_brf_prototyp=>_brfresult. METHODS setup. METHODS is_carrid_lh FOR TESTING. METHODS is_carrid_not_lh FOR TESTING. METHODS teardown. ********************************************************************** * Hilfsmethoden (zur Verbesserung der Lesbarkeit des Codings) ********************************************************************** "! Die Ergebnisdaten des BRF+ Regelwerks "! erhalten wir als Referenz, die wir "! in ein konventionelles Datenobjekt "! konvertieren müssen. "! @parameter i_data | BRF+ Ergebnis als Referenz "! @parameter r_struc | Struktur der BRF+ Ergebnisdaten CLASS-METHODS convert_data_simple IMPORTING i_data TYPE any RETURNING VALUE(r_struc) TYPE __brf_result. "! Erzeugung einer Referenz auf die Eingabedaten "! - die dereferenzierten Eingabedaten werden "! in der Klasse ohnehin nicht gebraucht "! @parameter i_import_parameters | BRF+ Eingabedaten "! @parameter r_import_parameters | Referenz auf BRF+ Eingabedaten CLASS-METHODS get_reference_of IMPORTING i_import_parameters TYPE __import_parameters RETURNING VALUE(r_import_parameters) TYPE REF TO data. ENDCLASS. CLASS ltc_fc_simple_test IMPLEMENTATION. METHOD setup. brf_prototyp = NEW ycl_brf_prototyp( ). ENDMETHOD. METHOD is_carrid_lh. FIELD-SYMBOLS TYPE any. "IF_FDT_TYPES=>ELEMENT_TEXT. DATA do_carrid TYPE s_carr_id VALUE 'LH'. DATA do_carrid_ref TYPE REF TO data. GET REFERENCE OF do_carrid INTO do_carrid_ref. TRY. " Wir erzeugen eine Referenz der Eingabedaten, " weil die dereferenzierten Eingabedaten " in der Klasse ohnehin nicht gebraucht werden " und die Schnittstelle damit universeller wird. " " Diese Referenz, den Namen der Eingabedaten " sowie den Namen der BRF+ Funktion übergeben wir brf_prototyp->set_prerequisites( VALUE #( function_name = 'FC_SIMPLE' importdata_name = 'DO_CARRID' brf_import_parameters = do_carrid_ref ) ). brf_prototyp->start_rules( ). CATCH cx_fdt INTO DATA(exc). MESSAGE exc->get_text( ) TYPE 'E'. ENDTRY. " Entgegennehmen des Ergebnisses " der BRF+ Regelbearbeitung brf_result = brf_prototyp->get_brf_result( ). ASSIGN brf_result->* TO . cl_aunit_assert=>assert_equals( exp = 'Das ist eine deutsche Fluggesellschaft' act = convert_data_simple( ) msg = 'Falsches Ergebnis aus BRF+' level = cl_aunit_assert=>critical quit = cl_aunit_assert=>method ). ENDMETHOD. METHOD is_carrid_not_lh. FIELD-SYMBOLS TYPE any. DATA do_carrid TYPE s_carr_id VALUE 'AF'. DATA do_carrid_ref TYPE REF TO data. GET REFERENCE OF do_carrid INTO do_carrid_ref. TRY. " Wir erzeugen eine Referenz der Eingabedaten, " weil die dereferenzierten Eingabedaten " in der Klasse ohnehin nicht gebraucht werden " und die Schnittstelle damit universeller wird. " " Diese Referenz, den Namen der Eingabedaten " sowie den Namen der BRF+ Funktion übergeben wir brf_prototyp->set_prerequisites( VALUE #( function_name = 'FC_SIMPLE' importdata_name = 'DO_CARRID' brf_import_parameters = do_carrid_ref ) ). brf_prototyp->start_rules( ). CATCH cx_fdt INTO DATA(exc). MESSAGE exc->get_text( ) TYPE 'E'. ENDTRY. " Entgegennehmen des Ergebnisses " der BRF+ Regelbearbeitung brf_result = brf_prototyp->get_brf_result( ). ASSIGN brf_result->* TO . cl_aunit_assert=>assert_equals( exp = 'Das ist KEINE deutsche Fluggesellschaft' act = convert_data_simple( ) msg = 'Falsches Ergebnis aus BRF+' level = cl_aunit_assert=>critical quit = cl_aunit_assert=>method ). ENDMETHOD. METHOD teardown. CLEAR brf_prototyp. CLEAR brf_result. ENDMETHOD. ********************************************************************** * Hilfsmethoden (zur Verbesserung der Lesbarkeit des Codings) ********************************************************************** METHOD convert_data_simple. FIELD-SYMBOLS TYPE any. FIELD-SYMBOLS TYPE any. ASSIGN i_data TO . ASSIGN r_struc TO . IF IS NOT ASSIGNED OR IS NOT ASSIGNED. RETURN. ENDIF. = . ENDMETHOD. METHOD get_reference_of. GET REFERENCE OF i_import_parameters INTO r_import_parameters. ENDMETHOD. ENDCLASS.