Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
91 lines
3.4 KiB
ABAP
91 lines
3.4 KiB
ABAP
CLASS {{p}}t14_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
METHODS result_for
|
|
IMPORTING iv_quantity TYPE decfloat34
|
|
iv_scrap TYPE decfloat34
|
|
iv_rework TYPE decfloat34 DEFAULT 0
|
|
EXPORTING ev_pct TYPE decfloat34
|
|
ev_severity TYPE string
|
|
ev_rework TYPE decfloat34.
|
|
METHODS percent_and_severity FOR TESTING.
|
|
METHODS severity_bands FOR TESTING.
|
|
METHODS rework_quantity FOR TESTING.
|
|
METHODS invalid_inputs FOR TESTING.
|
|
METHODS scrap_too_high FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t14_test IMPLEMENTATION.
|
|
METHOD result_for.
|
|
ev_rework = iv_rework.
|
|
CALL FUNCTION '{{P}}PRD_SCRAP'
|
|
EXPORTING
|
|
iv_quantity = iv_quantity
|
|
iv_scrap = iv_scrap
|
|
IMPORTING
|
|
ev_scrap_pct = ev_pct
|
|
ev_severity = ev_severity
|
|
CHANGING
|
|
cv_rework_qty = ev_rework
|
|
EXCEPTIONS
|
|
invalid_quantity = 1
|
|
scrap_too_high = 2
|
|
OTHERS = 3.
|
|
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
|
|
ENDMETHOD.
|
|
|
|
METHOD percent_and_severity.
|
|
result_for( EXPORTING iv_quantity = 800 iv_scrap = 7
|
|
IMPORTING ev_pct = DATA(lv_pct) ev_severity = DATA(lv_sev) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '0.9' ) act = lv_pct ).
|
|
cl_abap_unit_assert=>assert_equals( exp = `LOW` act = lv_sev ).
|
|
ENDMETHOD.
|
|
|
|
METHOD severity_bands.
|
|
result_for( EXPORTING iv_quantity = 100 iv_scrap = 0
|
|
IMPORTING ev_severity = DATA(lv_ok) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = `OK` act = lv_ok ).
|
|
result_for( EXPORTING iv_quantity = 100 iv_scrap = 5
|
|
IMPORTING ev_severity = DATA(lv_low) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = `LOW` act = lv_low ).
|
|
result_for( EXPORTING iv_quantity = 100 iv_scrap = 20
|
|
IMPORTING ev_severity = DATA(lv_high) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = `HIGH` act = lv_high ).
|
|
result_for( EXPORTING iv_quantity = 100 iv_scrap = 21
|
|
IMPORTING ev_severity = DATA(lv_crit) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = `CRITICAL` act = lv_crit ).
|
|
ENDMETHOD.
|
|
|
|
METHOD rework_quantity.
|
|
result_for( EXPORTING iv_quantity = 100 iv_scrap = 4 iv_rework = 99
|
|
IMPORTING ev_rework = DATA(lv_keep) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 99 ) act = lv_keep ).
|
|
result_for( EXPORTING iv_quantity = 100 iv_scrap = 10
|
|
IMPORTING ev_rework = DATA(lv_set) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 10 ) act = lv_set ).
|
|
ENDMETHOD.
|
|
|
|
METHOD invalid_inputs.
|
|
DATA lv_pct TYPE decfloat34.
|
|
DATA lv_rework TYPE decfloat34.
|
|
CALL FUNCTION '{{P}}PRD_SCRAP'
|
|
EXPORTING iv_quantity = 0 iv_scrap = 0
|
|
IMPORTING ev_scrap_pct = lv_pct
|
|
CHANGING cv_rework_qty = lv_rework
|
|
EXCEPTIONS invalid_quantity = 1 OTHERS = 2.
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = sy-subrc ).
|
|
ENDMETHOD.
|
|
|
|
METHOD scrap_too_high.
|
|
DATA lv_pct TYPE decfloat34.
|
|
DATA lv_rework TYPE decfloat34.
|
|
CALL FUNCTION '{{P}}PRD_SCRAP'
|
|
EXPORTING iv_quantity = 100 iv_scrap = 101
|
|
IMPORTING ev_scrap_pct = lv_pct
|
|
CHANGING cv_rework_qty = lv_rework
|
|
EXCEPTIONS scrap_too_high = 2 OTHERS = 1.
|
|
cl_abap_unit_assert=>assert_equals( exp = 2 act = sy-subrc ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|