CLASS ltc_freight_calculator DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}freight_calculator. METHODS setup. METHODS base_parcel FOR TESTING. METHODS express_parcel FOR TESTING. METHODS zone_is_normalized FOR TESTING. METHODS weight_error FOR TESTING. METHODS unknown_zone FOR TESTING. METHODS zone_support FOR TESTING. ENDCLASS. CLASS ltc_freight_calculator IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}freight_calculator( ). ENDMETHOD. METHOD base_parcel. cl_abap_unit_assert=>assert_equals( exp = VALUE {{p}}freight_calculator=>ty_result( status = 'OK' base = '45.00' total = '45.00' ) act = mo_cut->calculate( iv_weight_kg = '10.00' iv_zone = `DE` ) ). ENDMETHOD. METHOD express_parcel. cl_abap_unit_assert=>assert_equals( exp = VALUE {{p}}freight_calculator=>ty_result( status = 'OK' base = '45.00' surcharge = '11.25' total = '56.25' ) act = mo_cut->calculate( iv_weight_kg = '10.00' iv_zone = `DE` iv_express = abap_true ) ). ENDMETHOD. METHOD zone_is_normalized. cl_abap_unit_assert=>assert_equals( exp = VALUE {{p}}freight_calculator=>ty_result( status = 'OK' base = '39.00' total = '39.00' ) act = mo_cut->calculate( iv_weight_kg = '5.00' iv_zone = ` ch ` ) ). ENDMETHOD. METHOD weight_error. cl_abap_unit_assert=>assert_equals( exp = VALUE {{p}}freight_calculator=>ty_result( status = 'WEIGHT' ) act = mo_cut->calculate( iv_weight_kg = '0.00' iv_zone = `DE` ) ). ENDMETHOD. METHOD unknown_zone. cl_abap_unit_assert=>assert_equals( exp = VALUE {{p}}freight_calculator=>ty_result( status = 'ZONE' ) act = mo_cut->calculate( iv_weight_kg = '5.00' iv_zone = `XX` ) ). ENDMETHOD. METHOD zone_support. cl_abap_unit_assert=>assert_true( mo_cut->is_zone_supported( `de` ) ). cl_abap_unit_assert=>assert_false( mo_cut->is_zone_supported( `XX` ) ). ENDMETHOD. ENDCLASS.