class Z_CL_ABAP101_JAN_KEN_PON definition
public
create public .
*"* public components of class Z_CL_ABAP101_JAN_KEN_PON
*"* do not include other source files here!!!
public section.
interfaces Z_IF_ABAP101_JAN_KEN_PON_TYPES .
methods CONSTRUCTOR
importing
value(IM_PLAYER_1) type Z_IF_ABAP101_JAN_KEN_PON_TYPES=>CTY_PLAYER_NAME default 'Furlan'
value(IM_PLAYER_2) type Z_IF_ABAP101_JAN_KEN_PON_TYPES=>CTY_PLAYER_NAME default 'Pagoti' .
methods JAN_KEN_PON
importing
value(IM_HAND_PLAYER_1) type Z_IF_ABAP101_JAN_KEN_PON_TYPES=>CTY_HAND
value(IM_HAND_PLAYER_2) type Z_IF_ABAP101_JAN_KEN_PON_TYPES=>CTY_HAND
returning
value(RE_WINNER) type Z_IF_ABAP101_JAN_KEN_PON_TYPES=>CTY_PLAYER_NAME .
class-methods GENERATE_RANDOM_HAND
returning
value(RE_V_RANDOM_HAND) type Z_IF_ABAP101_JAN_KEN_PON_TYPES=>CTY_HAND .
methods GET_WINNER
returning
value(RE_WINNER) type Z_IF_ABAP101_JAN_KEN_PON_TYPES=>CTY_PLAYER_NAME .
class-methods PRINT_HAND
importing
value(IM_V_HAND_TYPE) type Z_IF_ABAP101_JAN_KEN_PON_TYPES=>CTY_HAND .
class-methods GET_WINNER_OF_HAND
importing
!IM_V_LOSER_HAND type Z_IF_ABAP101_JAN_KEN_PON_TYPES=>CTY_HAND
returning
value(RE_V_WINNER_HAND) type Z_IF_ABAP101_JAN_KEN_PON_TYPES=>CTY_HAND .
*"* protected components of class Z_CL_ABAP101_JAN_KEN_PON
*"* do not include other source files here!!!
protected section.
constants C_HAND_SCISSORS type Z_IF_ABAP101_JAN_KEN_PON_TYPES~CTY_HAND value 'SCISSORS'. "#EC NOTEXT
constants C_HAND_ROCK type Z_IF_ABAP101_JAN_KEN_PON_TYPES~CTY_HAND value 'ROCK'. "#EC NOTEXT
constants C_HAND_PAPER type Z_IF_ABAP101_JAN_KEN_PON_TYPES~CTY_HAND value 'PAPER'. "#EC NOTEXT
*"* private components of class Z_CL_ABAP101_JAN_KEN_PON
*"* do not include other source files here!!!
private section.
data V_PLAYER_1 type Z_IF_ABAP101_JAN_KEN_PON_TYPES~CTY_PLAYER_NAME .
data V_PLAYER_2 type Z_IF_ABAP101_JAN_KEN_PON_TYPES~CTY_PLAYER_NAME .
data V_LAST_WINNER type Z_IF_ABAP101_JAN_KEN_PON_TYPES~CTY_PLAYER_NAME .
class-methods PRINT_HAND_PAPER .
class-methods PRINT_HAND_ROCK .
class-methods PRINT_HAND_SCISSORS .
*"* local class implementation for public class
*"* use this source file for the implementation part of
*"* local helper classes
*"* use this source file for any type declarations (class
*"* definitions, interfaces or data types) you need for method
*"* implementation or private method's signature
*"* use this source file for any macro definitions you need
*"* in the implementation part of the class
CLASS abap_unit_testclass DEFINITION DEFERRED.
CLASS z_cl_abap101_jan_ken_pon DEFINITION LOCAL FRIENDS abap_unit_testclass.
* ----------------------------------------------------------------------
CLASS abap_unit_testclass DEFINITION FOR TESTING "#AU Duration Medium
"#AU Risk_Level Harmless
.
* ----------------------------------------------------------------------
* ===============
PUBLIC SECTION.
* ===============
INTERFACES: z_if_abap101_jan_ken_pon_types.
* ==================
PROTECTED SECTION.
* ==================
* ================
PRIVATE SECTION.
* ================
DATA:
o_game_1 TYPE REF TO z_cl_abap101_jan_ken_pon. "#EC NOTEXT
" Players Names
CONSTANTS:
c_player_furlan TYPE z_if_abap101_jan_ken_pon_types~cty_player_name VALUE 'Furlan',
c_player_pagoti TYPE z_if_abap101_jan_ken_pon_types~cty_player_name VALUE 'Pagoti',
c_player_abap101 TYPE z_if_abap101_jan_ken_pon_types~cty_player_name VALUE 'ABAP101',
c_player_depressao TYPE z_if_abap101_jan_ken_pon_types~cty_player_name VALUE 'Depressao'.
* 'Setup' is always called BEFORE a unit test
METHODS: setup.
* 'Teardown' is always called AFTER a unit test
METHODS: teardown.
* This test was made to garantee the correct state of the last player which won a game
METHODS: get_winner FOR TESTING.
METHODS:
* These tests were made to garantee that when P1 is anyone and has a better hand, he wins
jan_ken_pon_p1_furlan_p1_win FOR TESTING,
jan_ken_pon_p1_pagoti_p1_win FOR TESTING,
jan_ken_pon_p1_abap101_p1_win FOR TESTING,
jan_ken_pon_p1_depress_p1_win FOR TESTING,
* These tests were made to garantee that when P1 is anyone and has NOT a better hand, he loses
jan_ken_pon_p1_furlan_p2_win FOR TESTING,
jan_ken_pon_p1_pagoti_p2_win FOR TESTING,
jan_ken_pon_p1_abap101_p2_win FOR TESTING,
jan_ken_pon_p1_depress_p2_win FOR TESTING,
* These tests were made to garantee that when P2 is anyone and has a better hand, he wins
jan_ken_pon_p2_furlan_p1_win FOR TESTING,
jan_ken_pon_p2_pagoti_p1_win FOR TESTING,
jan_ken_pon_p2_abap101_p1_win FOR TESTING,
jan_ken_pon_p2_depress_p1_win FOR TESTING,
* These tests were made to garantee that when P2 is anyone and has NOT a better hand, he loses
jan_ken_pon_p2_furlan_p2_win FOR TESTING,
jan_ken_pon_p2_pagoti_p2_win FOR TESTING,
jan_ken_pon_p2_abap101_p2_win FOR TESTING,
jan_ken_pon_p2_depress_p2_win FOR TESTING,
* These tests were made to test games which 'Rock' is the first hand
jan_ken_pon_rock_rock_draw FOR TESTING,
jan_ken_pon_rock_sciss_p1 FOR TESTING,
jan_ken_pon_rock_paper_p2 FOR TESTING,
* These tests were made to test games which 'Paper' is the first hand
jan_ken_pon_paper_rock_p1 FOR TESTING,
jan_ken_pon_paper_sciss_p2 FOR TESTING,
jan_ken_pon_paper_paper_draw FOR TESTING,
* These tests were made to test games which 'Scissors' is the first hand
jan_ken_pon_sciss_rock_p2 FOR TESTING,
jan_ken_pon_sciss_sciss_draw FOR TESTING,
jan_ken_pon_sciss_paper_p1 FOR TESTING,
* These tests were made to test all games possibilities
jan_ken_pon_1hand_win_p1_win FOR TESTING,
jan_ken_pon_2hand_win_p2_win FOR TESTING,
jan_ken_pon_draw_game_draw FOR TESTING.
ENDCLASS. "Abap_Unit_Testclass
* ----------------------------------------------------------------------
CLASS abap_unit_testclass IMPLEMENTATION.
* ----------------------------------------------------------------------
* ----------------------------------------------------------------------
METHOD setup.
* ----------------------------------------------------------------------
DATA im_player_1 TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
DATA im_player_2 TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_pagoti.
ENDMETHOD. "Setup
* ----------------------------------------------------------------------
METHOD teardown.
* ----------------------------------------------------------------------
CLEAR: o_game_1.
ENDMETHOD. "Teardown
* ----------------------------------------------------------------------
METHOD get_winner.
* ----------------------------------------------------------------------
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CALL METHOD o_game_1->jan_ken_pon
EXPORTING
im_hand_player_1 = o_game_1->c_hand_scissors
im_hand_player_2 = o_game_1->c_hand_rock
* receiving
* re_winner = re_winner
.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_2
msg = 'Testing Winner'
* level =
).
ENDMETHOD. "Get_Winner
METHOD: jan_ken_pon_p1_furlan_p1_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_rock_sciss_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'Furlan Win: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_sciss_paper_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'Furlan Win: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_paper_rock_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'Furlan Win: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p1_furlan_p1_win
METHOD: jan_ken_pon_p1_pagoti_p1_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_rock_sciss_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'Pagoti Win: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_sciss_paper_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'Pagoti Win: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_paper_rock_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'Pagoti Win: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p1_pagoti_p1_win
METHOD: jan_ken_pon_p1_abap101_p1_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_rock_sciss_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'ABAP101 Win: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_sciss_paper_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'ABAP101 Win: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_paper_rock_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'ABAP101 Win: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p1_abap101_p1_win
METHOD: jan_ken_pon_p1_depress_p1_win .
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_rock_sciss_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'Depressao Win: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_sciss_paper_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'Depressao Win: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_paper_rock_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'Depressao Win: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p1_depressao_p1_win
METHOD: jan_ken_pon_p1_furlan_p2_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_rock_paper_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'Furlan Lose: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_sciss_rock_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'Furlan Lose: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_paper_sciss_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'Furlan Lose: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p1_furlan_p2_win
METHOD: jan_ken_pon_p1_pagoti_p2_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_rock_paper_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'Pagoti Lose: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_sciss_rock_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'Pagoti Lose: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_paper_sciss_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'Pagoti Lose: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p1_pagoti_p2_win
METHOD: jan_ken_pon_p1_abap101_p2_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_rock_paper_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'ABAP101 Lose: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_sciss_rock_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'ABAP101 Lose: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_paper_sciss_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'ABAP101 Lose: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p1_abap101_p2_win
METHOD: jan_ken_pon_p1_depress_p2_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_rock_paper_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'Depressao Lose: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_sciss_rock_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'Depressao Lose: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_paper_sciss_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'Depressao Lose: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p1_depressao_p2_win
METHOD: jan_ken_pon_p2_furlan_p1_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_rock_sciss_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'Furlan (P2) Lose: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_sciss_paper_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'Furlan (P2) Lose: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_paper_rock_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'Furlan (P2) Lose: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p2_furlan_p1_win
METHOD: jan_ken_pon_p2_pagoti_p1_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_rock_sciss_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'Pagoti (P2) Lose: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_sciss_paper_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'Pagoti (P2) Lose: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_paper_rock_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'Pagoti (P2) Lose: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p2_pagoti_p1_win
METHOD: jan_ken_pon_p2_abap101_p1_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_rock_sciss_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'ABAP101 (P2) Lose: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_sciss_paper_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'ABAP101 (P2) Lose: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_paper_rock_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'ABAP101 (P2) Lose: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p2_abap101_p1_win
METHOD: jan_ken_pon_p2_depress_p1_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_rock_sciss_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'Depressao (P2) Lose: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_sciss_paper_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'Depressao (P2) Lose: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_paper_rock_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'Depressao (P2) Lose: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p2_depressao_p1_win
METHOD: jan_ken_pon_p2_furlan_p2_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_rock_paper_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'Furlan (P2) Win: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_sciss_rock_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'Furlan (P2) Win: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_furlan.
CALL METHOD: jan_ken_pon_paper_sciss_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_furlan
msg = 'Furlan (P2) Win: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p2_furlan_p2_win
METHOD: jan_ken_pon_p2_pagoti_p2_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_rock_paper_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'Pagoti (P2) Win: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_sciss_rock_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'Pagoti (P2) Win: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_pagoti.
CALL METHOD: jan_ken_pon_paper_sciss_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_pagoti
msg = 'Pagoti (P2) Win: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p2_pagoti_p2_win
METHOD: jan_ken_pon_p2_abap101_p2_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_rock_paper_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'ABAP101 (P2) Win: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_sciss_rock_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'ABAP101 (P2) Win: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_depressao
im_player_2 = c_player_abap101.
CALL METHOD: jan_ken_pon_paper_sciss_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_abap101
msg = 'ABAP101 (P2) Win: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p2_abap101_p2_win
METHOD: jan_ken_pon_p2_depress_p2_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_furlan
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_rock_paper_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'Depressao (P2) Win: Rock x Scissors'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_pagoti
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_sciss_rock_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'Depressao (P2) Win: Scissors x Paper'
* level =
).
**********************************************************************
CREATE OBJECT o_game_1
EXPORTING
im_player_1 = c_player_abap101
im_player_2 = c_player_depressao.
CALL METHOD: jan_ken_pon_paper_sciss_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = c_player_depressao
msg = 'Depressao (P2) Win: Paper x Rock'
* level =
).
**********************************************************************
ENDMETHOD. "JAN_KEN_pon_p2_depressao_p2_win
METHOD: jan_ken_pon_rock_rock_draw.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
re_winner_act = o_game_1->jan_ken_pon(
im_hand_player_1 = o_game_1->c_hand_rock
im_hand_player_2 = o_game_1->c_hand_rock ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = space
msg = 'Rock x Rock - Draw'
* level =
).
ENDMETHOD. "JAN_KEN_pon_rock_rock_draw
METHOD: jan_ken_pon_rock_sciss_p1.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
re_winner_act = o_game_1->jan_ken_pon(
im_hand_player_1 = o_game_1->c_hand_rock
im_hand_player_2 = o_game_1->c_hand_scissors ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_1
msg = 'Rock x Scissors - P1 win'
* level =
).
ENDMETHOD. "JAN_KEN_pon_rock_sciss_p1
METHOD: jan_ken_pon_rock_paper_p2.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
re_winner_act = o_game_1->jan_ken_pon(
im_hand_player_1 = o_game_1->c_hand_rock
im_hand_player_2 = o_game_1->c_hand_paper ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_2
msg = 'Rock x Paper - P2 win'
* level =
).
ENDMETHOD. "JAN_KEN_pon_rock_paper_p2
METHOD: jan_ken_pon_paper_rock_p1.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
re_winner_act = o_game_1->jan_ken_pon(
im_hand_player_1 = o_game_1->c_hand_paper
im_hand_player_2 = o_game_1->c_hand_rock ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_1
msg = 'Paper x Rock - P1 win'
* level =
).
ENDMETHOD. "JAN_KEN_pon_paper_rock_p1
METHOD: jan_ken_pon_paper_sciss_p2.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
re_winner_act = o_game_1->jan_ken_pon(
im_hand_player_1 = o_game_1->c_hand_paper
im_hand_player_2 = o_game_1->c_hand_scissors ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_2
msg = 'Paper x Scissors - P2 win'
* level =
).
ENDMETHOD. "JAN_KEN_pon_paper_sciss_p2
METHOD:jan_ken_pon_paper_paper_draw.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
re_winner_act = o_game_1->jan_ken_pon(
im_hand_player_1 = o_game_1->c_hand_paper
im_hand_player_2 = o_game_1->c_hand_paper ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = space
msg = 'Paper x Paper - Draw'
* level =
).
ENDMETHOD. "JAN_KEN_pon_paper_paper_draw
METHOD: jan_ken_pon_sciss_rock_p2.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
re_winner_act = o_game_1->jan_ken_pon(
im_hand_player_1 = o_game_1->c_hand_scissors
im_hand_player_2 = o_game_1->c_hand_rock ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_2
msg = 'Scissors x Rock - P2 win'
* level =
).
ENDMETHOD. "JAN_KEN_pon_sciss_rock_p2
METHOD: jan_ken_pon_sciss_sciss_draw.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
re_winner_act = o_game_1->jan_ken_pon(
im_hand_player_1 = o_game_1->c_hand_scissors
im_hand_player_2 = o_game_1->c_hand_scissors ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = space
msg = 'Scissors x Scissors - draw'
* level =
).
ENDMETHOD. "JAN_KEN_pon_sciss_sciss_draw
METHOD: jan_ken_pon_sciss_paper_p1.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
re_winner_act = o_game_1->jan_ken_pon(
im_hand_player_1 = o_game_1->c_hand_scissors
im_hand_player_2 = o_game_1->c_hand_paper ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_1
msg = 'Scissors x Paper - P1 win'
* level =
).
ENDMETHOD. "JAN_KEN_pon_sciss_paper_p1
METHOD: jan_ken_pon_1hand_win_p1_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CALL METHOD: jan_ken_pon_rock_sciss_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_1
msg = 'P1 Win: Rock x Scissors'
* level =
).
CALL METHOD: jan_ken_pon_sciss_paper_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_1
msg = 'P1 Win: Scissors x Paper'
* level =
).
CALL METHOD: jan_ken_pon_paper_rock_p1.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_1
msg = 'P1 Win: Paper x Rock'
* level =
).
ENDMETHOD. "JAN_KEN_pon_p1_win_p1_win
METHOD: jan_ken_pon_2hand_win_p2_win.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CALL METHOD: jan_ken_pon_rock_paper_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_2
msg = 'P2 Win: Rock x Paper'
* level =
).
CALL METHOD: jan_ken_pon_sciss_rock_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_2
msg = 'P2 Win: Scissors x Rock'
* level =
).
CALL METHOD: jan_ken_pon_paper_sciss_p2.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = o_game_1->v_player_2
msg = 'P2 Win: Paper x Scissors'
* level =
).
ENDMETHOD. "JAN_KEN_pon_p2_win_p2_win
METHOD: jan_ken_pon_draw_game_draw.
DATA re_winner_act TYPE z_if_abap101_jan_ken_pon_types=>cty_player_name.
CALL METHOD: jan_ken_pon_rock_rock_draw.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = space
msg = 'Draw Game: Rock x Rock'
* level =
).
CALL METHOD: jan_ken_pon_sciss_sciss_draw.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = space
msg = 'Draw Game: Scissors x Scissors'
* level =
).
CALL METHOD: jan_ken_pon_paper_paper_draw.
re_winner_act = o_game_1->get_winner( ).
cl_aunit_assert=>assert_equals(
act = re_winner_act
exp = space
msg = 'Draw Game: Paper x Paper'
* level =
).
ENDMETHOD. "JAN_KEN_pon_draw_game_draw
ENDCLASS. "Abap_Unit_Testclass
ABAP