Files
abap-llm/tasks_gen/train/G1136/reference/job_planner.testclasses.abap
2026-10-05 18:02:52 +02:00

96 lines
3.1 KiB
ABAP

CLASS ltc_job_planner DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA mo_cut TYPE REF TO {{p}}job_planner.
METHODS setup.
METHODS valid_job RETURNING VALUE(rs_job) TYPE {{p}}job_planner=>ty_job.
METHODS standard_cost FOR TESTING.
METHODS express_cost FOR TESTING.
METHODS missing_id FOR TESTING.
METHODS bad_hours FOR TESTING.
METHODS bad_group FOR TESTING.
ENDCLASS.
CLASS ltc_job_planner IMPLEMENTATION.
METHOD setup.
mo_cut = NEW {{p}}job_planner( ).
ENDMETHOD.
METHOD valid_job.
rs_job = VALUE #( job_id = 'JOB-1000'
calc_mode = 'S'
work_hours = '10.00'
part_count = 4
mat_group = 'ST'
due_date = '20250601'
net_value = '100.00' ).
ENDMETHOD.
METHOD standard_cost.
DATA lv_exp TYPE {{p}}job_planner=>ty_cost.
lv_exp = '750.00'.
TRY.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = mo_cut->calculate_cost( valid_job( ) ) ).
CATCH {{p}}cx_job_error.
cl_abap_unit_assert=>fail( `unexpected exception` ).
ENDTRY.
ENDMETHOD.
METHOD express_cost.
DATA ls_job TYPE {{p}}job_planner=>ty_job.
DATA lv_exp TYPE {{p}}job_planner=>ty_cost.
ls_job = valid_job( ).
ls_job-calc_mode = 'E'.
ls_job-work_hours = '2.50'.
ls_job-part_count = 2.
ls_job-mat_group = 'AL'.
ls_job-net_value = 0.
lv_exp = '241.00'.
TRY.
cl_abap_unit_assert=>assert_equals( exp = lv_exp
act = mo_cut->calculate_cost( ls_job ) ).
CATCH {{p}}cx_job_error.
cl_abap_unit_assert=>fail( `unexpected exception` ).
ENDTRY.
ENDMETHOD.
METHOD missing_id.
DATA(ls_job) = valid_job( ).
ls_job-job_id = ''.
TRY.
mo_cut->validate( ls_job ).
cl_abap_unit_assert=>fail( `NO_JOB_ID expected` ).
CATCH {{p}}cx_job_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}cx_job_error=>c_reason-no_job_id
act = lx_error->get_reason( ) ).
ENDTRY.
ENDMETHOD.
METHOD bad_hours.
DATA(ls_job) = valid_job( ).
ls_job-work_hours = '101.00'.
TRY.
mo_cut->validate( ls_job ).
cl_abap_unit_assert=>fail( `BAD_HOURS expected` ).
CATCH {{p}}cx_job_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}cx_job_error=>c_reason-bad_hours
act = lx_error->get_reason( ) ).
ENDTRY.
ENDMETHOD.
METHOD bad_group.
DATA(ls_job) = valid_job( ).
ls_job-mat_group = 'XY'.
TRY.
mo_cut->calculate_cost( ls_job ).
cl_abap_unit_assert=>fail( `BAD_GROUP expected` ).
CATCH {{p}}cx_job_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}cx_job_error=>c_reason-bad_group
act = lx_error->get_reason( ) ).
ENDTRY.
ENDMETHOD.
ENDCLASS.