96 lines
3.1 KiB
ABAP
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.
|