203 lines
6.8 KiB
ABAP
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.
|