85 lines
4.0 KiB
ABAP
85 lines
4.0 KiB
ABAP
CLASS ltc_harvest_evaluator DEFINITION FINAL FOR TESTING
|
|
DURATION SHORT RISK LEVEL HARMLESS.
|
|
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}harvest_evaluator.
|
|
METHODS setup.
|
|
METHODS sums_quantities FOR TESTING.
|
|
METHODS counts_members_once FOR TESTING.
|
|
METHODS ignores_unknown_member FOR TESTING.
|
|
METHODS ignores_zero_quantity FOR TESTING.
|
|
METHODS sorts_by_total FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_harvest_evaluator IMPLEMENTATION.
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}harvest_evaluator( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD sums_quantities.
|
|
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
|
( member_id = 'M00001' member_name = 'Hof Adler' ) ).
|
|
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
|
( member_id = 'M00001' variety = 'RIES' quantity_kg = 10 )
|
|
( member_id = 'M00001' variety = 'RIES' quantity_kg = 15 ) ).
|
|
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
|
it_member = lt_member ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_result ) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 25 act = lt_result[ 1 ]-total_kg ).
|
|
ENDMETHOD.
|
|
|
|
METHOD counts_members_once.
|
|
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
|
( member_id = 'M00001' member_name = 'Hof Adler' )
|
|
( member_id = 'M00002' member_name = 'Hof Birke' ) ).
|
|
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
|
( member_id = 'M00001' variety = 'RIES' quantity_kg = 10 )
|
|
( member_id = 'M00001' variety = 'RIES' quantity_kg = 5 )
|
|
( member_id = 'M00002' variety = 'RIES' quantity_kg = 5 ) ).
|
|
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
|
it_member = lt_member ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 20 act = lt_result[ 1 ]-total_kg ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 2 act = lt_result[ 1 ]-member_count ).
|
|
ENDMETHOD.
|
|
|
|
METHOD ignores_unknown_member.
|
|
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
|
( member_id = 'M00001' member_name = 'Hof Adler' ) ).
|
|
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
|
( member_id = 'M00001' variety = 'RIES' quantity_kg = 10 )
|
|
( member_id = 'M00009' variety = 'RIES' quantity_kg = 99 ) ).
|
|
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
|
it_member = lt_member ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 10 act = lt_result[ 1 ]-total_kg ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_result[ 1 ]-member_count ).
|
|
ENDMETHOD.
|
|
|
|
METHOD ignores_zero_quantity.
|
|
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
|
( member_id = 'M00001' member_name = 'Hof Adler' ) ).
|
|
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
|
( member_id = 'M00001' variety = 'RIES' quantity_kg = 0 )
|
|
( member_id = 'M00001' variety = 'RIES' quantity_kg = 40 ) ).
|
|
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
|
it_member = lt_member ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 40 act = lt_result[ 1 ]-total_kg ).
|
|
ENDMETHOD.
|
|
|
|
METHOD sorts_by_total.
|
|
DATA(lt_member) = VALUE {{p}}if_harvest=>tt_member(
|
|
( member_id = 'M00001' member_name = 'Hof Adler' )
|
|
( member_id = 'M00002' member_name = 'Hof Birke' )
|
|
( member_id = 'M00003' member_name = 'Hof Zeder' ) ).
|
|
DATA(lt_report) = VALUE {{p}}if_harvest=>tt_report(
|
|
( member_id = 'M00001' variety = 'RIES' quantity_kg = 5 )
|
|
( member_id = 'M00002' variety = 'SPAE' quantity_kg = 30 )
|
|
( member_id = 'M00003' variety = 'SILV' quantity_kg = 20 ) ).
|
|
DATA(lt_result) = mo_cut->evaluate( it_report = lt_report
|
|
it_member = lt_member ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'SPAE' act = lt_result[ 1 ]-variety ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'SILV' act = lt_result[ 2 ]-variety ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'RIES' act = lt_result[ 3 ]-variety ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|