174 lines
7.4 KiB
ABAP
174 lines
7.4 KiB
ABAP
CLASS {{p}}t02_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PUBLIC SECTION.
|
|
INTERFACES {{p}}if_bouquet_pricing.
|
|
PRIVATE SECTION.
|
|
METHODS size_constants FOR TESTING.
|
|
METHODS zone_constants FOR TESTING.
|
|
METHODS reason_constants FOR TESTING.
|
|
METHODS limit_constants FOR TESTING.
|
|
METHODS fee_constants FOR TESTING.
|
|
METHODS type_lengths FOR TESTING.
|
|
METHODS check_order_contract FOR TESTING.
|
|
METHODS delivery_fee_contract FOR TESTING.
|
|
METHODS bouquet_price_contract FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t02_hidden 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-nearby.
|
|
ENDMETHOD.
|
|
|
|
METHOD {{p}}if_bouquet_pricing~bouquet_price.
|
|
rv_price = {{p}}if_bouquet_pricing=>c_fee-vase.
|
|
ENDMETHOD.
|
|
|
|
METHOD size_constants.
|
|
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_constants.
|
|
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_constants.
|
|
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_constants.
|
|
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_constants.
|
|
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 type_lengths.
|
|
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.
|
|
|
|
METHOD check_order_contract.
|
|
DATA lo_cut TYPE REF TO {{p}}if_bouquet_pricing.
|
|
lo_cut = me.
|
|
DATA(lv_reason) = lo_cut->check_order( iv_size = {{p}}if_bouquet_pricing=>c_size-medium
|
|
iv_stems = 20
|
|
iv_zone = {{p}}if_bouquet_pricing=>c_zone-town ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}if_bouquet_pricing=>c_reason-ok
|
|
act = lv_reason ).
|
|
ENDMETHOD.
|
|
|
|
METHOD delivery_fee_contract.
|
|
DATA lo_cut TYPE REF TO {{p}}if_bouquet_pricing.
|
|
lo_cut = me.
|
|
DATA(lv_fee) = lo_cut->delivery_fee( iv_zone = {{p}}if_bouquet_pricing=>c_zone-nearby ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}if_bouquet_pricing=>c_fee-nearby
|
|
act = lv_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD bouquet_price_contract.
|
|
DATA lo_cut TYPE REF TO {{p}}if_bouquet_pricing.
|
|
lo_cut = me.
|
|
DATA(lv_price) = lo_cut->bouquet_price( iv_size = {{p}}if_bouquet_pricing=>c_size-large
|
|
iv_stems = 40
|
|
iv_vase = abap_true ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}if_bouquet_pricing=>c_fee-vase
|
|
act = lv_price ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|