Advertisement
NickLatkovich

Untitled

Aug 19th, 2016
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 2.46 KB | None | 0 0
  1. CLASS lcl_abstract_specification_tst DEFINITION.
  2.  
  3.   PROTECTED SECTION.
  4.  
  5.     DATA:
  6.       mo_null_object TYPE REF TO object ##needed.
  7.  
  8.     METHODS:
  9.       get_specification
  10.         IMPORTING
  11.           i_is_satisfied  TYPE abap_bool
  12.         RETURNING value(ro_specification) TYPE REF TO zif_specification,
  13.       get_and_specification
  14.         IMPORTING
  15.           i_is_satisfied_x  TYPE abap_bool
  16.           i_is_satisfied_y  TYPE abap_bool
  17.         RETURNING value(ro_specification) TYPE REF TO zif_specification,
  18.       get_or_specification
  19.         IMPORTING
  20.           i_is_satisfied_x  TYPE abap_bool
  21.           i_is_satisfied_y  TYPE abap_bool
  22.         RETURNING value(ro_specification) TYPE REF TO zif_specification,
  23.       get_not_specification
  24.         IMPORTING
  25.           i_is_satisfied TYPE abap_bool
  26.         RETURNING value(ro_specification) TYPE REF TO zif_specification.
  27.  
  28. ENDCLASS.
  29.  
  30. CLASS lcl_abstract_specification_tst IMPLEMENTATION.
  31.  
  32.   METHOD get_specification.
  33.  
  34.     CREATE OBJECT ro_specification
  35.       TYPE zcl_test_specification
  36.       EXPORTING
  37.         i_is_satisfied = i_is_satisfied.
  38.  
  39.   ENDMETHOD.
  40.  
  41.   METHOD get_and_specification.
  42.  
  43.     ro_specification =
  44.       me->get_specification(
  45.           i_is_satisfied_x
  46.         )->and(
  47.           me->get_specification( i_is_satisfied_y )
  48.         ).
  49.  
  50.   ENDMETHOD.
  51.  
  52.   METHOD get_or_specification.
  53.  
  54.     ro_specification =
  55.       me->get_specification(
  56.           i_is_satisfied_x
  57.         )->or(
  58.           me->get_specification( i_is_satisfied_y )
  59.         ).
  60.  
  61.   ENDMETHOD.
  62.  
  63.   METHOD get_not_specification.
  64.  
  65.     ro_specification =
  66.       me->get_specification(
  67.           i_is_satisfied
  68.         )->not( ).
  69.  
  70.   ENDMETHOD.
  71.  
  72. ENDCLASS.
  73.  
  74.  
  75. CLASS ltcl_test_specification DEFINITION
  76.     INHERITING FROM lcl_abstract_specification_tst
  77.     FOR TESTING
  78.     DURATION SHORT
  79.     RISK LEVEL HARMLESS
  80.     FINAL.
  81.  
  82.   PRIVATE SECTION.
  83.  
  84.     METHODS:
  85.       is_satisfied_yes  FOR TESTING,
  86.       is_satisfied_no   FOR TESTING.
  87.  
  88. ENDCLASS.
  89.  
  90. CLASS ltcl_test_specification IMPLEMENTATION.
  91.  
  92.   METHOD is_satisfied_yes.
  93.  
  94.     cl_abap_unit_assert=>assert_equals(
  95.         exp = abap_true
  96.         act = me->get_specification( abap_true )->is_satisfied_by( me->mo_null_object )
  97.       ).
  98.  
  99.   ENDMETHOD.
  100.  
  101.   METHOD is_satisfied_no.
  102.  
  103.     cl_abap_unit_assert=>assert_equals(
  104.         exp = abap_false
  105.         act = me->get_specification( abap_false )->is_satisfied_by( mo_null_object )
  106.       ).
  107.  
  108.   ENDMETHOD.
  109.  
  110. ENDCLASS.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement