CLASS ltc_drone_checker DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}if_drone_check. DATA mo_drone TYPE REF TO {{p}}drone_checker. METHODS setup. METHODS valid_request_is_ok FOR TESTING. METHODS heavy_payload_is_rejected FOR TESTING. METHODS strong_wind_is_rejected FOR TESTING. METHODS low_battery_is_rejected FOR TESTING. METHODS required_battery_is_rounded_up FOR TESTING. METHODS zone_and_light_are_checked FOR TESTING. METHODS reason_order_is_kept FOR TESTING. ENDCLASS. CLASS ltc_drone_checker IMPLEMENTATION. METHOD setup. mo_drone = NEW {{p}}drone_checker( ). mo_cut = mo_drone. ENDMETHOD. METHOD valid_request_is_ok. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-ok act = mo_cut->check( iv_payload = '2.00' iv_distance = '10.00' iv_wind_speed = '5.00' iv_battery = 30 iv_in_zone = abap_true iv_daylight = abap_true ) ). ENDMETHOD. METHOD heavy_payload_is_rejected. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-payload act = mo_cut->check( iv_payload = '5.01' iv_distance = '10.00' iv_wind_speed = '5.00' iv_battery = 30 iv_in_zone = abap_true iv_daylight = abap_true ) ). ENDMETHOD. METHOD strong_wind_is_rejected. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-wind act = mo_cut->check( iv_payload = '2.00' iv_distance = '10.00' iv_wind_speed = '12.01' iv_battery = 30 iv_in_zone = abap_true iv_daylight = abap_true ) ). ENDMETHOD. METHOD low_battery_is_rejected. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-battery act = mo_cut->check( iv_payload = '2.00' iv_distance = '10.00' iv_wind_speed = '5.00' iv_battery = 29 iv_in_zone = abap_true iv_daylight = abap_true ) ). ENDMETHOD. METHOD required_battery_is_rounded_up. cl_abap_unit_assert=>assert_equals( exp = 26 act = mo_drone->required_battery( '7.50' ) ). cl_abap_unit_assert=>assert_equals( exp = 30 act = mo_drone->required_battery( '10.00' ) ). cl_abap_unit_assert=>assert_equals( exp = 0 act = mo_drone->required_battery( '0.00' ) ). ENDMETHOD. METHOD zone_and_light_are_checked. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-zone act = mo_cut->check( iv_payload = '2.00' iv_distance = '10.00' iv_wind_speed = '5.00' iv_battery = 30 iv_in_zone = abap_false iv_daylight = abap_true ) ). cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-light act = mo_cut->check( iv_payload = '2.00' iv_distance = '10.00' iv_wind_speed = '5.00' iv_battery = 30 iv_in_zone = abap_true iv_daylight = abap_false ) ). ENDMETHOD. METHOD reason_order_is_kept. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-payload act = mo_cut->check( iv_payload = '6.00' iv_distance = '25.00' iv_wind_speed = '20.00' iv_battery = 0 iv_in_zone = abap_false iv_daylight = abap_false ) ). cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-distance act = mo_cut->check( iv_payload = '2.00' iv_distance = '25.00' iv_wind_speed = '20.00' iv_battery = 0 iv_in_zone = abap_false iv_daylight = abap_false ) ). ENDMETHOD. ENDCLASS.