anchor.diff:        act = mo_spy_oo_object->mv_package
         exp = 'package_name'
       ).
  -
     ENDMETHOD.
   
   
     METHOD then_it_should_generate_locals.
       cl_abap_unit_assert=>assert_equals(
         act = mo_spy_oo_object->ms_locals_key
  -      exp = ls_item-obj_name
  +      exp = ms_item-obj_name
       ).
       cl_abap_unit_assert=>assert_true( mo_spy_oo_object->mv_force ).
   
  
positive.code: 
      given_a_class_properties( ).
  
      ls_description-clsname =  ls_item-obj_name.
      ls_description-cmpname = 'a_method'.
      APPEND ls_description TO lt_descriptions.
      given_the_descriptions( lt_descriptions ).
  
      when_deserializing( ).
  
     then_shuld_update_descriptions( lt_descriptions ).
    ENDMETHOD.
  
    METHOD should_add_to_activation.
  
negative.code: 
  ENDCLASS.
  
  CLASS ltc_oo_test DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT .
    PROTECTED SECTION.
      DATA:
        mo_spy_oo_object     TYPE REF TO ltd_spy_oo_object,
        mo_fake_object_files TYPE REF TO ltd_fake_object_files,
        mo_xml_input         TYPE REF TO lcl_xml_input,
        mo_xml_out           TYPE REF TO lcl_xml_output,
        mo_oo_object         TYPE REF TO lif_object,
        ms_item              TYPE ty_item.
      METHODS: when_deserializing
        RAISING
          lcx_exception,
        then_should_deserialize_source,
        given_the_descriptions
          IMPORTING
            it_descriptions TYPE ty_seocompotx_tt
          RAISING
            lcx_exception,
        then_shuld_update_descriptions
          IMPORTING
            it_descriptions TYPE ty_seocompotx_tt,
        then_it_should_add_activation.
  
  ENDCLASS.
  CLASS ltc_oo_test IMPLEMENTATION.
  
    METHOD then_it_should_add_activation.
      cl_abap_unit_assert=>assert_equals(
        act = mo_spy_oo_object->ms_item_to_activate
        exp = ms_item
      ).
    ENDMETHOD.
  
    METHOD then_shuld_update_descriptions.
      cl_abap_unit_assert=>assert_equals(
            act = mo_spy_oo_object->mt_descriptions
            exp = it_descriptions
          ).
  
      cl_abap_unit_assert=>assert_equals(
        act = mo_spy_oo_object->ms_description_key
        exp = ms_item-obj_name
      ).
    ENDMETHOD.
  
    METHOD given_the_descriptions.
      mo_xml_out->add(
        iv_name = 'DESCRIPTIONS'
        ig_data = it_descriptions
     ).
    ENDMETHOD.
  
    METHOD then_should_deserialize_source.
      cl_abap_unit_assert=>assert_equals(
         act = mo_spy_oo_object->mt_source
         exp = mo_fake_object_files->mt_sources
       ).
  
      cl_abap_unit_assert=>assert_equals(
        act = mo_spy_oo_object->ms_deserialize_key
        exp = ms_item-obj_name
      ).
    ENDMETHOD.
  
    METHOD when_deserializing.
      CREATE OBJECT mo_xml_input
        EXPORTING
          iv_xml = mo_xml_out->render( ).
      mo_oo_object->deserialize(
        iv_package    = 'package_name'
        io_xml        = mo_xml_input
      ).
    ENDMETHOD.
  ENDCLASS.
  
  CLASS ltc_class_deserialization DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT
  INHERITING FROM ltc_oo_test.
    PRIVATE SECTION.
      METHODS:
        setup,
        given_a_class_properties
          RAISING
            lcx_exception,
        then_should_create_class,
        then_it_should_generate_locals,
        should_create_class        FOR TESTING RAISING cx_static_check,
        should_generate_locals     FOR TESTING RAISING cx_static_check,
        should_deserialize_source  FOR TESTING RAISING cx_static_check,
        should_update_descriptions FOR TESTING RAISING cx_static_check,
        should_add_to_activation   FOR TESTING RAISING cx_static_check.
      DATA:
        ms_class_properties  TYPE vseoclass.
  ENDCLASS.
  
  CLASS ltc_class_deserialization IMPLEMENTATION.
  