CLASS {{p}}t21_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC 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 ok_flight FOR TESTING. METHODS payload_zero FOR TESTING. METHODS payload_too_heavy FOR TESTING. METHODS distance_zero FOR TESTING. METHODS distance_too_far FOR TESTING. METHODS wind_too_strong FOR TESTING. METHODS battery_too_low FOR TESTING. METHODS battery_exact_ok FOR TESTING. METHODS outside_zone FOR TESTING. METHODS no_daylight FOR TESTING. METHODS required_battery_rounds_up FOR TESTING. METHODS order_payload_first FOR TESTING. ENDCLASS. CLASS {{p}}t21_hidden IMPLEMENTATION. METHOD setup. mo_drone = NEW {{p}}drone_checker( ). mo_cut = mo_drone. ENDMETHOD. METHOD ok_flight. 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 ) ). cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-ok act = mo_cut->check( iv_payload = '5.00' iv_distance = '20.00' iv_wind_speed = '12.00' iv_battery = 50 iv_in_zone = abap_true iv_daylight = abap_true ) ). ENDMETHOD. METHOD payload_zero. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-payload act = mo_cut->check( iv_payload = '0.00' iv_distance = '10.00' iv_wind_speed = '5.00' iv_battery = 30 iv_in_zone = abap_true iv_daylight = abap_true ) ). ENDMETHOD. METHOD payload_too_heavy. 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 distance_zero. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-distance act = mo_cut->check( iv_payload = '2.00' iv_distance = '0.00' iv_wind_speed = '5.00' iv_battery = 30 iv_in_zone = abap_true iv_daylight = abap_true ) ). ENDMETHOD. METHOD distance_too_far. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-distance act = mo_cut->check( iv_payload = '2.00' iv_distance = '20.01' iv_wind_speed = '5.00' iv_battery = 60 iv_in_zone = abap_true iv_daylight = abap_true ) ). ENDMETHOD. METHOD wind_too_strong. 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 battery_too_low. 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 ) ). cl_abap_unit_assert=>assert_equals( exp = {{p}}if_drone_check=>c_reason-battery act = mo_cut->check( iv_payload = '2.00' iv_distance = '7.50' iv_wind_speed = '5.00' iv_battery = 25 iv_in_zone = abap_true iv_daylight = abap_true ) ). ENDMETHOD. METHOD battery_exact_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 outside_zone. 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 ) ). ENDMETHOD. METHOD no_daylight. 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 required_battery_rounds_up. cl_abap_unit_assert=>assert_equals( exp = 26 act = mo_drone->required_battery( '7.50' ) ). cl_abap_unit_assert=>assert_equals( exp = 50 act = mo_drone->required_battery( '20.00' ) ). cl_abap_unit_assert=>assert_equals( exp = 0 act = mo_drone->required_battery( '0.00' ) ). ENDMETHOD. METHOD order_payload_first. 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 ) ). ENDMETHOD. ENDCLASS.