Stage 2 summary at 50 accepted trajectories

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Kral
2026-10-05 18:02:52 +02:00
parent 332fb4601d
commit 5bcd1bf9cd
1230 changed files with 77563 additions and 33 deletions

View File

@@ -0,0 +1,109 @@
CLASS ltc_seed_lot_checker DEFINITION FINAL FOR TESTING
DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
CONSTANTS c_check_date TYPE d VALUE '20250601'.
DATA mo_cut TYPE REF TO {{p}}seed_lot_checker.
METHODS setup.
METHODS valid_lot
RETURNING VALUE(rs_lot) TYPE {{p}}seed_lot_checker=>ty_lot.
METHODS releases_valid_lot FOR TESTING.
METHODS rejects_bad_lot_no FOR TESTING.
METHODS rejects_old_harvest FOR TESTING.
METHODS rejects_low_germination FOR TESTING.
METHODS rejects_high_moisture FOR TESTING.
METHODS accepts_limit_values FOR TESTING.
ENDCLASS.
CLASS ltc_seed_lot_checker IMPLEMENTATION.
METHOD setup.
mo_cut = NEW {{p}}seed_lot_checker( ).
ENDMETHOD.
METHOD valid_lot.
rs_lot = VALUE #( lot_no = 'WHEA123456'
germination = 90
moisture = '11.0'
harvest_date = '20250501' ).
ENDMETHOD.
METHOD releases_valid_lot.
TRY.
mo_cut->check_lot( is_lot = valid_lot( ) iv_check_date = c_check_date ).
CATCH {{p}}cx_seed_lot INTO DATA(lo_ex).
cl_abap_unit_assert=>fail( msg = lo_ex->get_message( ) ).
ENDTRY.
ENDMETHOD.
METHOD rejects_bad_lot_no.
DATA(ls_lot) = valid_lot( ).
ls_lot-lot_no = 'AB12345678'.
TRY.
mo_cut->check_lot( is_lot = ls_lot iv_check_date = c_check_date ).
cl_abap_unit_assert=>fail( msg = `CX_LOT_FORMAT expected` ).
CATCH {{p}}cx_lot_format INTO DATA(lo_format).
cl_abap_unit_assert=>assert_equals(
exp = 'The lot number has an invalid format.'
act = lo_format->get_message( ) ).
CATCH {{p}}cx_seed_lot.
cl_abap_unit_assert=>fail( msg = `CX_LOT_FORMAT expected` ).
ENDTRY.
ENDMETHOD.
METHOD rejects_old_harvest.
DATA(ls_lot) = valid_lot( ).
ls_lot-harvest_date = '20240531'.
TRY.
mo_cut->check_lot( is_lot = ls_lot iv_check_date = c_check_date ).
cl_abap_unit_assert=>fail( msg = `CX_LOT_DATE expected` ).
CATCH {{p}}cx_lot_date INTO DATA(lo_date).
cl_abap_unit_assert=>assert_equals(
exp = 'The harvest date is not valid for the release check.'
act = lo_date->get_message( ) ).
CATCH {{p}}cx_seed_lot.
cl_abap_unit_assert=>fail( msg = `CX_LOT_DATE expected` ).
ENDTRY.
ENDMETHOD.
METHOD rejects_low_germination.
DATA(ls_lot) = valid_lot( ).
ls_lot-germination = 84.
TRY.
mo_cut->check_lot( is_lot = ls_lot iv_check_date = c_check_date ).
cl_abap_unit_assert=>fail( msg = `CX_LOT_GERMINATION expected` ).
CATCH {{p}}cx_lot_germination INTO DATA(lo_germ).
cl_abap_unit_assert=>assert_equals(
exp = 'The germination rate is below the minimum of 85 percent.'
act = lo_germ->get_message( ) ).
CATCH {{p}}cx_seed_lot.
cl_abap_unit_assert=>fail( msg = `CX_LOT_GERMINATION expected` ).
ENDTRY.
ENDMETHOD.
METHOD rejects_high_moisture.
DATA(ls_lot) = valid_lot( ).
ls_lot-moisture = '12.1'.
TRY.
mo_cut->check_lot( is_lot = ls_lot iv_check_date = c_check_date ).
cl_abap_unit_assert=>fail( msg = `CX_LOT_MOISTURE expected` ).
CATCH {{p}}cx_lot_moisture INTO DATA(lo_moist).
cl_abap_unit_assert=>assert_equals(
exp = 'The moisture is above the maximum of 12.0 percent.'
act = lo_moist->get_message( ) ).
CATCH {{p}}cx_seed_lot.
cl_abap_unit_assert=>fail( msg = `CX_LOT_MOISTURE expected` ).
ENDTRY.
ENDMETHOD.
METHOD accepts_limit_values.
DATA(ls_lot) = valid_lot( ).
ls_lot-germination = 85.
ls_lot-moisture = '12.0'.
ls_lot-harvest_date = '20240601'.
TRY.
mo_cut->check_lot( is_lot = ls_lot iv_check_date = c_check_date ).
CATCH {{p}}cx_seed_lot INTO DATA(lo_ex).
cl_abap_unit_assert=>fail( msg = lo_ex->get_message( ) ).
ENDTRY.
ENDMETHOD.
ENDCLASS.