Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add cl_abap_unit_assert #157

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
250 changes: 250 additions & 0 deletions src/sabp_unit_core_api/cl_abap_unit_assert.clas.abap
Original file line number Diff line number Diff line change
@@ -0,0 +1,250 @@
CLASS cl_abap_unit_assert DEFINITION PUBLIC FINAL CREATE PUBLIC
GLOBAL FRIENDS _if_aunit_friend_to_assert.

PUBLIC SECTION.
CONSTANTS rtol_default TYPE f VALUE '1.E-14'.
CLASS-METHODS:
abort
IMPORTING !msg TYPE csequence OPTIONAL
!detail TYPE csequence OPTIONAL
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>class
PREFERRED PARAMETER msg,
assert_bound
IMPORTING !act TYPE any
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_char_cp
IMPORTING !act TYPE csequence
!exp TYPE csequence
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_char_np
IMPORTING !act TYPE csequence
!exp TYPE csequence
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_differs
IMPORTING !act TYPE simple
!exp TYPE simple
!tol TYPE f OPTIONAL
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_equals
IMPORTING !act TYPE any
!exp TYPE any
!ignore_hash_sequence TYPE abap_bool DEFAULT abap_false
!tol TYPE f OPTIONAL
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_equals_float
IMPORTING !act TYPE numeric
!exp TYPE numeric
!rtol TYPE numeric DEFAULT rtol_default
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_false
IMPORTING !act TYPE abap_bool
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_initial
IMPORTING !act TYPE any DEFAULT sy-subrc
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
PREFERRED PARAMETER act
RETURNING
VALUE(assertion_failed) TYPE abap_bool,
assert_not_bound
IMPORTING !act TYPE any
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_not_initial
IMPORTING !act TYPE any
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING
VALUE(assertion_failed) TYPE abap_bool,
assert_number_between
IMPORTING !lower TYPE numeric
!upper TYPE numeric
!number TYPE numeric
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_subrc
IMPORTING VALUE(exp) TYPE sysubrc DEFAULT 0
VALUE(act) TYPE sysubrc DEFAULT sy-subrc
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
!symsg TYPE symsg OPTIONAL
PREFERRED PARAMETER act
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_table_contains
IMPORTING !line TYPE any
!table TYPE ANY TABLE
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_table_not_contains
IMPORTING !line TYPE any
!table TYPE ANY TABLE
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_text_matches
IMPORTING !pattern TYPE csequence
!text TYPE csequence
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_that
IMPORTING !act TYPE data
!exp TYPE REF TO if_constraint
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
assert_true
IMPORTING !act TYPE abap_bool
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING VALUE(assertion_failed) TYPE abap_bool,
fail
IMPORTING !msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
!detail TYPE csequence OPTIONAL
PREFERRED PARAMETER msg.

TYPES: n1 TYPE n LENGTH 1.

PROTECTED SECTION.

PRIVATE SECTION.
CONSTANTS rtol_min TYPE f VALUE '1.E-15' ##no_Text.
CLASS-DATA fg_num_called TYPE i VALUE 0.

ENDCLASS.



CLASS cl_abap_unit_assert IMPLEMENTATION.


METHOD abort.
RETURN.
ENDMETHOD.


METHOD assert_bound.
RETURN.
ENDMETHOD.


METHOD assert_char_cp.
RETURN.
ENDMETHOD.


METHOD assert_char_np.
RETURN.
ENDMETHOD.


METHOD assert_differs.
RETURN.
ENDMETHOD.


METHOD assert_equals.
RETURN.
ENDMETHOD.


METHOD assert_equals_float.
RETURN.
ENDMETHOD.


METHOD assert_false.
RETURN.
ENDMETHOD.


METHOD assert_initial.
RETURN.
ENDMETHOD.


METHOD assert_not_bound.
RETURN.
ENDMETHOD.


METHOD assert_not_initial.
RETURN.
ENDMETHOD.


METHOD assert_number_between.
RETURN.
ENDMETHOD.


METHOD assert_subrc.
RETURN.
ENDMETHOD.


METHOD assert_table_contains.
RETURN.
ENDMETHOD.


METHOD assert_table_not_contains.
RETURN.
ENDMETHOD.


METHOD assert_text_matches.
RETURN.
ENDMETHOD.


METHOD assert_that.
RETURN.
ENDMETHOD.


METHOD assert_true.
RETURN.
ENDMETHOD.


METHOD fail.
RETURN.
ENDMETHOD.
ENDCLASS.
16 changes: 16 additions & 0 deletions src/sabp_unit_core_api/cl_abap_unit_assert.clas.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>CL_ABAP_UNIT_ASSERT</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>ABAP Unit: Assertions (see longtext)</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>