CLASS {{p}}t02_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. CONSTANTS: c_score_5_0 TYPE {{p}}supplier_score=>ty_score VALUE '5.0', c_score_0_0 TYPE {{p}}supplier_score=>ty_score VALUE '0.0', c_score_4_5 TYPE {{p}}supplier_score=>ty_score VALUE '4.5', c_score_3_5 TYPE {{p}}supplier_score=>ty_score VALUE '3.5', c_score_2_5 TYPE {{p}}supplier_score=>ty_score VALUE '2.5', c_score_1_9 TYPE {{p}}supplier_score=>ty_score VALUE '1.9', c_score_1_4 TYPE {{p}}supplier_score=>ty_score VALUE '1.4', c_score_3_7 TYPE {{p}}supplier_score=>ty_score VALUE '3.7', c_grade_a TYPE {{p}}supplier_score=>ty_grade VALUE 'A', c_grade_b TYPE {{p}}supplier_score=>ty_grade VALUE 'B', c_grade_c TYPE {{p}}supplier_score=>ty_grade VALUE 'C', c_grade_d TYPE {{p}}supplier_score=>ty_grade VALUE 'D', c_grade_e TYPE {{p}}supplier_score=>ty_grade VALUE 'E', c_grade_x TYPE {{p}}supplier_score=>ty_grade VALUE 'X'. DATA mo_cut TYPE REF TO {{p}}supplier_score. METHODS setup. METHODS perfect_supplier FOR TESTING. METHODS quality_one_blocks FOR TESTING. METHODS rating_below_range FOR TESTING. METHODS rating_above_range FOR TESTING. METHODS grade_a_boundary FOR TESTING. METHODS rounds_up_to_b FOR TESTING. METHODS grade_c_boundary FOR TESTING. METHODS grade_d FOR TESTING. METHODS grade_e FOR TESTING. METHODS weights_quality FOR TESTING. ENDCLASS. CLASS {{p}}t02_hidden IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}supplier_score( ). ENDMETHOD. METHOD perfect_supplier. DATA(ls_result) = mo_cut->evaluate( iv_price = 5 iv_quality = 5 iv_delivery = 5 ). cl_abap_unit_assert=>assert_equals( exp = c_score_5_0 act = ls_result-score ). cl_abap_unit_assert=>assert_equals( exp = c_grade_a act = ls_result-grade ). ENDMETHOD. METHOD quality_one_blocks. DATA(ls_result) = mo_cut->evaluate( iv_price = 5 iv_quality = 1 iv_delivery = 5 ). cl_abap_unit_assert=>assert_equals( exp = c_score_0_0 act = ls_result-score ). cl_abap_unit_assert=>assert_equals( exp = c_grade_x act = ls_result-grade ). ENDMETHOD. METHOD rating_below_range. DATA(ls_result) = mo_cut->evaluate( iv_price = 0 iv_quality = 3 iv_delivery = 3 ). cl_abap_unit_assert=>assert_equals( exp = c_score_0_0 act = ls_result-score ). cl_abap_unit_assert=>assert_equals( exp = c_grade_x act = ls_result-grade ). ENDMETHOD. METHOD rating_above_range. DATA(ls_result) = mo_cut->evaluate( iv_price = 3 iv_quality = 3 iv_delivery = 6 ). cl_abap_unit_assert=>assert_equals( exp = c_score_0_0 act = ls_result-score ). cl_abap_unit_assert=>assert_equals( exp = c_grade_x act = ls_result-grade ). ENDMETHOD. METHOD grade_a_boundary. DATA(ls_result) = mo_cut->evaluate( iv_price = 5 iv_quality = 5 iv_delivery = 3 ). cl_abap_unit_assert=>assert_equals( exp = c_score_4_5 act = ls_result-score ). cl_abap_unit_assert=>assert_equals( exp = c_grade_a act = ls_result-grade ). ENDMETHOD. METHOD rounds_up_to_b. DATA(ls_result) = mo_cut->evaluate( iv_price = 5 iv_quality = 2 iv_delivery = 3 ). cl_abap_unit_assert=>assert_equals( exp = c_score_3_5 act = ls_result-score ). cl_abap_unit_assert=>assert_equals( exp = c_grade_b act = ls_result-grade ). ENDMETHOD. METHOD grade_c_boundary. DATA(ls_result) = mo_cut->evaluate( iv_price = 2 iv_quality = 2 iv_delivery = 4 ). cl_abap_unit_assert=>assert_equals( exp = c_score_2_5 act = ls_result-score ). cl_abap_unit_assert=>assert_equals( exp = c_grade_c act = ls_result-grade ). ENDMETHOD. METHOD grade_d. DATA(ls_result) = mo_cut->evaluate( iv_price = 1 iv_quality = 2 iv_delivery = 3 ). cl_abap_unit_assert=>assert_equals( exp = c_score_1_9 act = ls_result-score ). cl_abap_unit_assert=>assert_equals( exp = c_grade_d act = ls_result-grade ). ENDMETHOD. METHOD grade_e. DATA(ls_result) = mo_cut->evaluate( iv_price = 1 iv_quality = 2 iv_delivery = 1 ). cl_abap_unit_assert=>assert_equals( exp = c_score_1_4 act = ls_result-score ). cl_abap_unit_assert=>assert_equals( exp = c_grade_e act = ls_result-grade ). ENDMETHOD. METHOD weights_quality. DATA(ls_result) = mo_cut->evaluate( iv_price = 3 iv_quality = 5 iv_delivery = 3 ). cl_abap_unit_assert=>assert_equals( exp = c_score_3_7 act = ls_result-score ). cl_abap_unit_assert=>assert_equals( exp = c_grade_b act = ls_result-grade ). ENDMETHOD. ENDCLASS.