Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 1.80 KB | None | 0 0
  1. METHOD verify_interaction.
  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.  
  8. *create test double object
  9.     lo_currency_converter_double ?= cl_abap_testdouble=>create( ‘if_td_currency_converter’ ).
  10.  
  11. *injecting the test double into the object being tested
  12.     CREATE OBJECT lo_expense_manager EXPORTING currency_converter = lo_currency_converter_double.
  13.  
  14. *add three expenses
  15.     lo_expense_manager->add_expense_item(
  16.       EXPORTING
  17.         description  =Line item 1
  18.         currency_code = ‘USD’
  19.         amount        =100
  20.     ).
  21.  
  22.     lo_expense_manager->add_expense_item(
  23.       EXPORTING
  24.         description  =Line item 2
  25.         currency_code = ‘USD’
  26.         amount        =100
  27.     ).
  28.  
  29.     lo_expense_manager->add_expense_item(
  30.       EXPORTING
  31.         description  =Line item 3
  32.         currency_code = ‘INR’
  33.         amount        =100
  34.     ).
  35.  
  36. *configuration of expected interactions
  37.     cl_abap_testdouble=>configure_call( lo_currency_converter_double )->returning( 80 )->and_expect( )->is_called_times( 2 ).
  38.     lo_currency_converter_double->convert(
  39.       EXPORTING
  40.         amount          = 100
  41.         source_currency = ‘USD’
  42.         target_currency = ‘EUR’
  43.     ).
  44.  
  45. *actual method call
  46.     lv_total_expense = lo_expense_manager->calculate_total_expense( currency_code = ‘EUR’ ).
  47.  
  48. *assertion
  49.     cl_abap_unit_assert=>assert_equals( exp = lv_exp_total_expense act = lv_total_expense ).
  50.  
  51. *verify interactions on testdouble
  52.     cl_abap_testdouble=>verify_expectations( lo_currency_converter_double ).
  53.  
  54.   ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement