Files
abap-llm/tasks_gen/train/G1136/hidden/t_d_job_hidden.clas.abap
2026-10-05 18:02:52 +02:00

203 lines
6.8 KiB
ABAP

CLASS {{p}}t_d_job_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
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 priority_cost FOR TESTING.
METHODS wood_cost FOR TESTING.
METHODS missing_id_raises FOR TESTING.
METHODS bad_mode_raises FOR TESTING.
METHODS bad_hours_raises FOR TESTING.
METHODS bad_count_raises FOR TESTING.
METHODS bad_group_raises FOR TESTING.
METHODS bad_date_raises FOR TESTING.
METHODS bad_value_raises FOR TESTING.
ENDCLASS.
CLASS {{p}}t_d_job_hidden 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 priority_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 = 'P'.
ls_job-work_hours = '1.00'.
ls_job-part_count = 1.
ls_job-mat_group = 'PL'.
ls_job-net_value = '10.00'.
lv_exp = '88.50'.
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 wood_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-work_hours = '0.50'.
ls_job-part_count = 1.
ls_job-mat_group = 'WD'.
ls_job-net_value = 0.
lv_exp = '35.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_raises.
DATA(ls_job) = valid_job( ).
ls_job-job_id = ''.
ls_job-calc_mode = 'Q'.
ls_job-work_hours = 0.
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_mode_raises.
DATA(ls_job) = valid_job( ).
ls_job-calc_mode = 'Q'.
ls_job-work_hours = 0.
TRY.
mo_cut->validate( ls_job ).
cl_abap_unit_assert=>fail( `BAD_MODE expected` ).
CATCH {{p}}cx_job_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}cx_job_error=>c_reason-bad_mode
act = lx_error->get_reason( ) ).
ENDTRY.
ENDMETHOD.
METHOD bad_hours_raises.
DATA(ls_job) = valid_job( ).
ls_job-work_hours = 0.
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.
ls_job-work_hours = '100.01'.
TRY.
mo_cut->calculate_cost( ls_job ).
cl_abap_unit_assert=>fail( `BAD_HOURS expected` ).
CATCH {{p}}cx_job_error INTO DATA(lx_cost_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}cx_job_error=>c_reason-bad_hours
act = lx_cost_error->get_reason( ) ).
ENDTRY.
ENDMETHOD.
METHOD bad_count_raises.
DATA(ls_job) = valid_job( ).
ls_job-part_count = 0.
TRY.
mo_cut->validate( ls_job ).
cl_abap_unit_assert=>fail( `BAD_COUNT expected` ).
CATCH {{p}}cx_job_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}cx_job_error=>c_reason-bad_count
act = lx_error->get_reason( ) ).
ENDTRY.
ENDMETHOD.
METHOD bad_group_raises.
DATA(ls_job) = valid_job( ).
DATA lv_msg TYPE string.
ls_job-mat_group = 'XY'.
lv_msg = 'The material group is not valid.'.
TRY.
mo_cut->validate( 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( ) ).
cl_abap_unit_assert=>assert_equals( exp = lv_msg
act = lx_error->get_message( ) ).
ENDTRY.
ENDMETHOD.
METHOD bad_date_raises.
DATA(ls_job) = valid_job( ).
ls_job-due_date = '00000000'.
TRY.
mo_cut->validate( ls_job ).
cl_abap_unit_assert=>fail( `BAD_DATE expected` ).
CATCH {{p}}cx_job_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}cx_job_error=>c_reason-bad_date
act = lx_error->get_reason( ) ).
ENDTRY.
ENDMETHOD.
METHOD bad_value_raises.
DATA(ls_job) = valid_job( ).
ls_job-net_value = -1.
TRY.
mo_cut->validate( ls_job ).
cl_abap_unit_assert=>fail( `BAD_VALUE expected` ).
CATCH {{p}}cx_job_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}cx_job_error=>c_reason-bad_value
act = lx_error->get_reason( ) ).
ENDTRY.
ENDMETHOD.
ENDCLASS.