211 lines
7.7 KiB
ABAP
211 lines
7.7 KiB
ABAP
CLASS {{p}}seed_lot_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
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_lower_case_lot_no FOR TESTING.
|
|
METHODS rejects_initial_harvest FOR TESTING.
|
|
METHODS rejects_future_harvest 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.
|
|
METHODS format_before_quality FOR TESTING.
|
|
METHODS date_before_quality FOR TESTING.
|
|
METHODS germination_before_moisture FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}seed_lot_hidden 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_lower_case_lot_no.
|
|
DATA(ls_lot) = valid_lot( ).
|
|
ls_lot-lot_no = 'whea123456'.
|
|
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_initial_harvest.
|
|
DATA(ls_lot) = valid_lot( ).
|
|
CLEAR ls_lot-harvest_date.
|
|
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_future_harvest.
|
|
DATA(ls_lot) = valid_lot( ).
|
|
ls_lot-harvest_date = '20250602'.
|
|
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_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.
|
|
|
|
METHOD format_before_quality.
|
|
DATA(ls_lot) = valid_lot( ).
|
|
ls_lot-lot_no = '1234567890'.
|
|
ls_lot-germination = 10.
|
|
ls_lot-moisture = '20.0'.
|
|
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 date_before_quality.
|
|
DATA(ls_lot) = valid_lot( ).
|
|
ls_lot-harvest_date = '20240531'.
|
|
ls_lot-germination = 10.
|
|
ls_lot-moisture = '20.0'.
|
|
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 germination_before_moisture.
|
|
DATA(ls_lot) = valid_lot( ).
|
|
ls_lot-germination = 10.
|
|
ls_lot-moisture = '20.0'.
|
|
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.
|
|
ENDCLASS.
|