*&---------------------------------------------------------------------*
*&  Include           ZABAPGIT_UNIT_TEST
*&---------------------------------------------------------------------*

* todo, should the tests be in the same include as the classes
* they are testing?

*CLASS ltcl_oo_serialize DEFINITION FINAL FOR TESTING
*  DURATION SHORT
*  RISK LEVEL HARMLESS.
*
*  PRIVATE SECTION.
*    METHODS:
*      setup,
*      empty_include FOR TESTING RAISING cx_static_check,
*      one_line_include FOR TESTING RAISING cx_static_check,
*      one_line_include_2 FOR TESTING RAISING cx_static_check,
*      one_line_include_3 FOR TESTING RAISING cx_static_check,
*      two_line_include FOR TESTING RAISING cx_static_check,
*      two_line_include_2 FOR TESTING RAISING cx_static_check,
*      two_line_include_3 FOR TESTING RAISING cx_static_check,
*      more_than_two_lines FOR TESTING RAISING cx_static_check,
*
*      _given_source_is
*        IMPORTING
*          i_source TYPE LINE OF zif_abapgit_definitions=>ty_string_tt,
*      _given_empty_test_include,
*      _when_skip_is_calculated,
*      _then_should_be_skipped,
*      _then_should_not_be_skipped.
*
*    DATA: mo_oo_serializer  TYPE REF TO lcl_oo_serializer,
*          mt_source         TYPE zif_abapgit_definitions=>ty_string_tt,
*          mv_skip_testclass TYPE abap_bool.
*
*ENDCLASS.
*
*
*CLASS ltcl_oo_serialize IMPLEMENTATION.
*
*  METHOD setup.
*
*    CREATE OBJECT mo_oo_serializer.
*
*  ENDMETHOD.
*
*  METHOD empty_include.
*
*    _given_empty_test_include( ).
*
*    _when_skip_is_calculated( ).
*
*    _then_should_be_skipped( ).
*
*  ENDMETHOD.
*
*  METHOD one_line_include.
*
*    _given_source_is( `*"* use this source file for your ABAP unit test classes` ).
*
*    _when_skip_is_calculated( ).
*
*    _then_should_be_skipped( ).
*
*  ENDMETHOD.
*
*  METHOD one_line_include_2.
*
*    _given_source_is( `*` ).
*
*    _when_skip_is_calculated( ).
*
*    _then_should_be_skipped( ).
*
*  ENDMETHOD.
*
*  METHOD one_line_include_3.
*
*    _given_source_is( `write: 'This is ABAP'.` ).
*
*    _when_skip_is_calculated( ).
*
*    _then_should_not_be_skipped( ).
*
*  ENDMETHOD.
*
*  METHOD two_line_include.
*
*    _given_source_is( `*"* use this source file for your ABAP unit test classes` ).
*    _given_source_is( ``                                                         ).
*
*    _when_skip_is_calculated( ).
*
*    _then_should_be_skipped( ).
*
*  ENDMETHOD.
*
*  METHOD two_line_include_2.
*
*    _given_source_is( `*"* use this source file for your ABAP unit test classes` ).
*    _given_source_is( `write: 'This is ABAP'.`                                   ).
*
*    _when_skip_is_calculated( ).
*
*    _then_should_not_be_skipped( ).
*
*  ENDMETHOD.
*
*  METHOD two_line_include_3.
*
*    _given_source_is( ` `                                                        ).
*    _given_source_is( `*"* use this source file for your ABAP unit test classes` ).
*
*    _when_skip_is_calculated( ).
*
*    _then_should_not_be_skipped( ).
*
*  ENDMETHOD.
*
*  METHOD more_than_two_lines.
*
*    _given_source_is( `*"* use this source file for your ABAP unit test classes` ).
*    _given_source_is( `CLASS ltcl_test DEFINITION FINAL FOR TESTING`             ).
*    _given_source_is( `  DURATION SHORT`                                         ).
*    _given_source_is( `  RISK LEVEL HARMLESS.`                                   ).
*    _given_source_is( ` `                                                        ).
*    _given_source_is( `  PRIVATE SECTION.`                                       ).
*    _given_source_is( `    METHODS:`                                             ).
*    _given_source_is( `      first_test FOR TESTING RAISING cx_static_check.`    ).
*    _given_source_is( `ENDCLASS.`                                                ).
*    _given_source_is( ` `                                                        ).
*    _given_source_is( `CLASS ltcl_test IMPLEMENTATION.`                          ).
*    _given_source_is( ` `                                                        ).
*    _given_source_is( `  METHOD first_test.`                                     ).
*    _given_source_is( `    cl_abap_unit_assert=>fail( 'This is a real test' ).`  ).
*    _given_source_is( `  ENDMETHOD.`                                             ).
*    _given_source_is( ` `                                                        ).
*    _given_source_is( `ENDCLASS.`                                                ).
*
*    _when_skip_is_calculated( ).
*
*    _then_should_not_be_skipped( ).
*
*  ENDMETHOD.
*
*  METHOD _given_source_is.
*
*    INSERT i_source INTO TABLE mt_source.
*
*  ENDMETHOD.
*
*  METHOD _given_empty_test_include.
*
*  ENDMETHOD.
*
*  METHOD _when_skip_is_calculated.
*
*    mv_skip_testclass = mo_oo_serializer->calculate_skip_testclass( mt_source ).
*
*  ENDMETHOD.
*
*  METHOD _then_should_be_skipped.
*
*    cl_abap_unit_assert=>assert_equals(
*      act = mv_skip_testclass
*      exp = abap_true
*      msg = |Testclass should be skipped| ).
*
*  ENDMETHOD.
*
*
*  METHOD _then_should_not_be_skipped.
*
*    cl_abap_unit_assert=>assert_equals(
*      act = mv_skip_testclass
*      exp = abap_false
*      msg = |Testclass should not be skipped| ).
*
*  ENDMETHOD.
*
*ENDCLASS.

INCLUDE zabapgit_unit_test_clas_intf.
