CLASS {{p}}bouquet_if_test DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PUBLIC SECTION. INTERFACES {{p}}if_bouquet_pricing. PRIVATE SECTION. METHODS size_values FOR TESTING. METHODS zone_values FOR TESTING. METHODS reason_values FOR TESTING. METHODS limit_values FOR TESTING. METHODS fee_values FOR TESTING. METHODS types_are_correct FOR TESTING. ENDCLASS. CLASS {{p}}bouquet_if_test IMPLEMENTATION. METHOD {{p}}if_bouquet_pricing~check_order. rv_reason = {{p}}if_bouquet_pricing=>c_reason-ok. ENDMETHOD. METHOD {{p}}if_bouquet_pricing~delivery_fee. rv_fee = {{p}}if_bouquet_pricing=>c_fee-town. ENDMETHOD. METHOD {{p}}if_bouquet_pricing~bouquet_price. rv_price = {{p}}if_bouquet_pricing=>c_fee-vase. ENDMETHOD. METHOD size_values. DATA lv_exp TYPE {{p}}if_bouquet_pricing=>ty_size. lv_exp = 'S'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_size-small ). lv_exp = 'M'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_size-medium ). lv_exp = 'L'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_size-large ). ENDMETHOD. METHOD zone_values. DATA lv_exp TYPE {{p}}if_bouquet_pricing=>ty_zone. lv_exp = 'T1'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_zone-town ). lv_exp = 'N1'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_zone-nearby ). lv_exp = 'F1'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_zone-far ). ENDMETHOD. METHOD reason_values. DATA lv_exp TYPE {{p}}if_bouquet_pricing=>ty_reason. lv_exp = 'OK'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_reason-ok ). lv_exp = 'NO_STEMS'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_reason-no_stems ). lv_exp = 'TOO_MANY'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_reason-too_many ). lv_exp = 'BAD_SIZE'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_reason-bad_size ). lv_exp = 'BAD_ZONE'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_reason-bad_zone ). ENDMETHOD. METHOD limit_values. DATA lv_exp TYPE {{p}}if_bouquet_pricing=>ty_stems. lv_exp = 5. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_limit-min_stems ). lv_exp = 60. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_limit-max_stems ). ENDMETHOD. METHOD fee_values. DATA lv_exp TYPE {{p}}if_bouquet_pricing=>ty_amount. lv_exp = '4.50'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_fee-vase ). lv_exp = '0.00'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_fee-town ). lv_exp = '6.00'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_fee-nearby ). lv_exp = '12.00'. cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_bouquet_pricing=>c_fee-far ). ENDMETHOD. METHOD types_are_correct. DATA lv_size TYPE {{p}}if_bouquet_pricing=>ty_size. DATA lv_zone TYPE {{p}}if_bouquet_pricing=>ty_zone. DATA lv_reason TYPE {{p}}if_bouquet_pricing=>ty_reason. DATA lv_amount TYPE {{p}}if_bouquet_pricing=>ty_amount. DATA lv_stems TYPE {{p}}if_bouquet_pricing=>ty_stems. DATA lv_ref_size TYPE c LENGTH 1. DATA lv_ref_zone TYPE c LENGTH 2. DATA lv_ref_reason TYPE c LENGTH 12. DATA lv_ref_amount TYPE p LENGTH 8 DECIMALS 2. DATA lv_ref_stems TYPE i. DATA(lo_size) = cl_abap_typedescr=>describe_by_data( lv_size ). DATA(lo_zone) = cl_abap_typedescr=>describe_by_data( lv_zone ). DATA(lo_reason) = cl_abap_typedescr=>describe_by_data( lv_reason ). DATA(lo_amount) = cl_abap_typedescr=>describe_by_data( lv_amount ). DATA(lo_stems) = cl_abap_typedescr=>describe_by_data( lv_stems ). cl_abap_unit_assert=>assert_equals( exp = 'C' act = lo_size->type_kind ). cl_abap_unit_assert=>assert_equals( exp = 'C' act = lo_zone->type_kind ). cl_abap_unit_assert=>assert_equals( exp = 'C' act = lo_reason->type_kind ). cl_abap_unit_assert=>assert_equals( exp = 'P' act = lo_amount->type_kind ). cl_abap_unit_assert=>assert_equals( exp = 'I' act = lo_stems->type_kind ). cl_abap_unit_assert=>assert_equals( exp = 2 act = lo_amount->decimals ). cl_abap_unit_assert=>assert_equals( exp = cl_abap_typedescr=>describe_by_data( lv_ref_size )->length act = lo_size->length ). cl_abap_unit_assert=>assert_equals( exp = cl_abap_typedescr=>describe_by_data( lv_ref_zone )->length act = lo_zone->length ). cl_abap_unit_assert=>assert_equals( exp = cl_abap_typedescr=>describe_by_data( lv_ref_reason )->length act = lo_reason->length ). cl_abap_unit_assert=>assert_equals( exp = cl_abap_typedescr=>describe_by_data( lv_ref_amount )->length act = lo_amount->length ). cl_abap_unit_assert=>assert_equals( exp = cl_abap_typedescr=>describe_by_data( lv_ref_stems )->length act = lo_stems->length ). ENDMETHOD. ENDCLASS.