CLASS lcl_calculadora  DEFINITION.

  PUBLIC SECTION.

    METHODS suma  IMPORTING numero_1  TYPE i
                            numero_2  TYPE i
                  EXPORTING resultado TYPE i.

ENDCLASS.

CLASS lcl_calculadora  IMPLEMENTATION.

  METHOD suma.
    resultado = numero_1 + numero_2.
  ENDMETHOD.

ENDCLASS.

CLASS lcl_test DEFINITION FOR TESTING
               RISK LEVEL HARMLESS
               DURATION SHORT.

  PUBLIC SECTION.

    METHODS test_suma FOR TESTING.

ENDCLASS.

CLASS lcl_test IMPLEMENTATION.

  METHOD test_suma.

    DATA: lr_calculadora  TYPE REF TO lcl_calculadora ,
          lv_resultado TYPE i.

    CREATE OBJECT lr_calculadora.

    lr_calculadora->suma( EXPORTING numero_1  = 8
                                    numero_2  = 6
                          IMPORTING resultado = lv_resultado ).

    cl_aunit_assert=>assert_equals(
      EXPORTING
        exp                  =  20   " Data Object with Expected Type
        act                  =  lv_resultado   " Data Object with Current Value
        msg                  =  'Suma incorrecta'   " Message in Case of Error
*    level                =     " Error Severity
*    tol                  =     " Tolerance Range for Floating Point Numbers
*    quit                 =     " Flow Control in Case of Error
*    ignore_hash_sequence = ABAP_FALSE    " Ignore change sequence in hash tables
*  RECEIVING
*    assertion_failed     =     " Condition not met
    ).

  ENDMETHOD.

ENDCLASS.