48 lines
1.9 KiB
ABAP
48 lines
1.9 KiB
ABAP
CLASS ltc_league_table DEFINITION FINAL FOR TESTING
|
|
DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}league_table.
|
|
|
|
METHODS setup.
|
|
METHODS empty_input_is_empty FOR TESTING.
|
|
METHODS counts_points FOR TESTING.
|
|
METHODS ignores_invalid_match FOR TESTING.
|
|
METHODS ranks_ties_equal FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_league_table IMPLEMENTATION.
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}league_table( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD empty_input_is_empty.
|
|
DATA(lt_table) = mo_cut->evaluate( VALUE {{p}}league_table=>tt_match( ) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_table ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD counts_points.
|
|
DATA(lt_table) = mo_cut->evaluate( VALUE {{p}}league_table=>tt_match(
|
|
( home_team = 'A' away_team = 'B' home_goals = 2 away_goals = 0 )
|
|
( home_team = 'B' away_team = 'A' home_goals = 2 away_goals = 2 ) ) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_table ) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'A' act = lt_table[ 1 ]-team ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 4 act = lt_table[ 1 ]-points ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_table[ 2 ]-points ).
|
|
ENDMETHOD.
|
|
|
|
METHOD ignores_invalid_match.
|
|
DATA(lt_table) = mo_cut->evaluate( VALUE {{p}}league_table=>tt_match(
|
|
( home_team = 'A' away_team = 'A' home_goals = 1 away_goals = 0 ) ) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_table ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD ranks_ties_equal.
|
|
DATA(lt_table) = mo_cut->evaluate( VALUE {{p}}league_table=>tt_match(
|
|
( home_team = 'A' away_team = 'B' home_goals = 1 away_goals = 1 ) ) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_table ) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_table[ 1 ]-rank ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_table[ 2 ]-rank ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|