Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 1.58 KB | None | 0 0
  1.  METHOD custom_matcher.
  2.  
  3.     DATA: lo_currency_converter_double TYPE REF TO if_td_currency_converter,
  4.           lo_expense_manager          TYPE REF TO cl_td_expense_manager,
  5.           lv_total_expense            TYPE i,
  6.           lv_exp_total_expense        TYPE i VALUE 160,
  7.           lo_matcher                  TYPE REF TO lcl_my_matcher.
  8.  
  9. *create test double object
  10.     lo_currency_converter_double ?= cl_abap_testdouble=>create( ‘if_td_currency_converter’ ).
  11.  
  12. *configuration
  13.     CREATE OBJECT lo_matcher.
  14.     cl_abap_testdouble=>configure_call( lo_currency_converter_double )->returning( 80 )->set_matcher( lo_matcher ).
  15.     lo_currency_converter_double->convert(
  16.       EXPORTING
  17.         amount          = 100
  18.         source_currency = ‘USD*
  19.         target_currency = ‘EUR’
  20.     ).
  21.  
  22. *injecting the test double into the object being tested
  23.     CREATE OBJECT lo_expense_manager EXPORTING currency_converter = lo_currency_converter_double.
  24.  
  25. *add expenses with pattern
  26.     lo_expense_manager->add_expense_item(
  27.       EXPORTING
  28.         description  =Line item 1
  29.         currency_code = ‘USDollar’
  30.         amount        =100
  31.   ).
  32.  
  33.     lo_expense_manager->add_expense_item(
  34.       EXPORTING
  35.         description  =Line item 2
  36.         currency_code = ‘USDLR’
  37.         amount        =100
  38.     ).
  39.  
  40. *actual method call
  41.     lv_total_expense = lo_expense_manager->calculate_total_expense( currency_code = ‘EUR’ ).
  42.  
  43. *assertion
  44.     cl_abap_unit_assert=>assert_equals( exp = lv_exp_total_expense act = lv_total_expense ).
  45.  
  46.   ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement