diff --git a/changelog.txt b/changelog.txt index abecfcb2..4316e0b3 100644 --- a/changelog.txt +++ b/changelog.txt @@ -18,6 +18,7 @@ Legend 2021-08-XX v.1.16.0 ------------------ +* Magic Number: Leading Zeros (#479) * Prefer New to Create Object: Dynamic Type (#469) * Magic Number: Table Index (#468) * Use native *_wa variables (#474) diff --git a/src/checks/y_check_magic_number.clas.abap b/src/checks/y_check_magic_number.clas.abap index 7f2edb8d..fd58c610 100644 --- a/src/checks/y_check_magic_number.clas.abap +++ b/src/checks/y_check_magic_number.clas.abap @@ -72,9 +72,10 @@ CLASS y_check_magic_number IMPLEMENTATION. METHOD is_magic_number. DATA(string) = token_wa-str. REPLACE ALL OCCURRENCES OF |'| IN string WITH ||. + result = xsdbool( string IS NOT INITIAL AND string CO '0123456789' - AND string <> '0' + AND string CN '0' AND string <> '1' ). ENDMETHOD. diff --git a/src/checks/y_check_magic_number.clas.testclasses.abap b/src/checks/y_check_magic_number.clas.testclasses.abap index be90a0be..5b76fd35 100644 --- a/src/checks/y_check_magic_number.clas.testclasses.abap +++ b/src/checks/y_check_magic_number.clas.testclasses.abap @@ -336,3 +336,23 @@ CLASS ltc_empty_string IMPLEMENTATION. ENDMETHOD. ENDCLASS. + + +CLASS ltc_leading_zeros DEFINITION INHERITING FROM ltc_if FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. + PROTECTED SECTION. + METHODS get_code_without_issue REDEFINITION. +ENDCLASS. + +CLASS ltc_leading_zeros IMPLEMENTATION. + + METHOD get_code_without_issue. + result = VALUE #( + ( ' REPORT ut_test.' ) + ( ' START-OF-SELECTION.' ) + ( | DATA char TYPE c LENGTH 6. | ) + ( | IF char = '000000'. | ) + ( ' ENDIF. ' ) + ). + ENDMETHOD. + +ENDCLASS.