Skip to content

Commit f0a285b

Browse files
authored
Merge branch '1.11.0' into check-statement-position
2 parents a18b7ea + 4980292 commit f0a285b

File tree

2 files changed

+22
-19
lines changed

2 files changed

+22
-19
lines changed

src/checks/y_check_db_access_in_ut.clas.abap

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ CLASS y_check_db_access_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base CRE
1515
DATA tokens_not_allowed TYPE y_char255_tab.
1616
DATA has_framework TYPE abap_bool.
1717

18-
METHODS inspect_class_definition IMPORTING method TYPE sstruc.
18+
METHODS inspect_class_definition IMPORTING class_implementation TYPE sstruc.
1919

2020
METHODS is_persistent_object IMPORTING obj_name TYPE string
2121
RETURNING VALUE(result) TYPE abap_bool.
2222

23-
METHODS consolidade_tokens IMPORTING statement TYPE sstmnt
23+
METHODS consolidade_tokens IMPORTING statement TYPE sstmnt
2424
RETURNING VALUE(result) TYPE string.
2525

2626
METHODS has_ddic_itab_same_syntax IMPORTING token TYPE char255
@@ -32,6 +32,7 @@ CLASS y_check_db_access_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base CRE
3232
ENDCLASS.
3333

3434

35+
3536
CLASS y_check_db_access_in_ut IMPLEMENTATION.
3637

3738

@@ -47,7 +48,7 @@ CLASS y_check_db_access_in_ut IMPLEMENTATION.
4748
settings-apply_on_test_code = abap_true.
4849
settings-documentation = |{ c_docs_path-checks }db-access-in-ut.md|.
4950

50-
relevant_statement_types = VALUE #( ( scan_struc_stmnt_type-method ) ).
51+
relevant_statement_types = VALUE #( ( scan_struc_stmnt_type-class_implementation ) ).
5152
relevant_structure_types = VALUE #( ).
5253

5354
set_check_message( 'Database access(es) within a Unit-Test should be removed!' ).
@@ -85,9 +86,10 @@ CLASS y_check_db_access_in_ut IMPLEMENTATION.
8586
ENDIF.
8687

8788
raise_error( statement_level = statement-level
88-
statement_index = index
89-
statement_from = statement-from
90-
error_priority = check_configuration-prio ).
89+
statement_index = index
90+
statement_from = statement-from
91+
error_priority = check_configuration-prio ).
92+
9193
ENDLOOP.
9294
ENDMETHOD.
9395

@@ -102,33 +104,33 @@ CLASS y_check_db_access_in_ut IMPLEMENTATION.
102104
METHOD inspect_class_definition.
103105
DATA test_risk_level TYPE string.
104106

105-
CLEAR has_framework.
106-
107107
TRY.
108-
DATA(class_implementation) = ref_scan_manager->structures[ method-back ].
109108
DATA(class_definition) = ref_scan_manager->structures[ class_implementation-back ].
110109
CATCH cx_sy_itab_line_not_found.
111110
RETURN.
112111
ENDTRY.
113112

113+
has_framework = abap_false.
114+
114115
LOOP AT ref_scan_manager->statements ASSIGNING FIELD-SYMBOL(<statement>)
115116
FROM class_definition-stmnt_from TO class_definition-stmnt_to.
117+
116118
IF is_in_scope( <statement> ) = abap_false.
117119
CONTINUE.
118120
ENDIF.
119121

120122
DATA(tokens) = consolidade_tokens( <statement> ).
121123

122-
test_risk_level = COND #( WHEN tokens CS 'RISK LEVEL HARMLESS' THEN risk_level_harmless
124+
test_risk_level = COND #( WHEN tokens CS 'RISK LEVEL HARMLESS' THEN risk_level_harmless
123125
WHEN tokens CS 'RISK LEVEL DANGEROUS' THEN risk_level_dangerous
124-
WHEN tokens CS 'RISK LEVEL CRITICAL' THEN risk_level_critical
125-
ELSE test_risk_level ).
126+
WHEN tokens CS 'RISK LEVEL CRITICAL' THEN risk_level_critical
127+
ELSE test_risk_level ).
126128

127129
has_framework = COND #( WHEN tokens CS 'IF_OSQL_TEST_ENVIRONMENT' THEN abap_true
128130
WHEN tokens CS 'CL_OSQL_TEST_ENVIRONMENT' THEN abap_true
129-
WHEN tokens CS 'IF_CDS_TEST_ENVIRONMENT' THEN abap_true
130-
WHEN tokens CS 'CL_CDS_TEST_ENVIRONMENT' THEN abap_true
131-
ELSE has_framework ).
131+
WHEN tokens CS 'IF_CDS_TEST_ENVIRONMENT' THEN abap_true
132+
WHEN tokens CS 'CL_CDS_TEST_ENVIRONMENT' THEN abap_true
133+
ELSE has_framework ).
132134
ENDLOOP.
133135

134136
test_risk_level = COND #( WHEN test_risk_level IS INITIAL THEN risk_level_not_set
@@ -159,12 +161,11 @@ CLASS y_check_db_access_in_ut IMPLEMENTATION.
159161

160162
METHOD is_internal_table.
161163
DATA(second_token) = get_token_abs( statement-from + 1 ).
162-
DATA(tirth_token) = get_token_abs( statement-from + 2 ).
164+
DATA(third_token) = get_token_abs( statement-from + 2 ).
163165

164-
DATA(table) = COND #( WHEN second_token = 'FROM' THEN tirth_token
165-
ELSE second_token ).
166+
DATA(table) = COND #( WHEN second_token = 'FROM' THEN third_token
167+
ELSE second_token ).
166168

167169
result = xsdbool( is_persistent_object( table ) = abap_false ).
168170
ENDMETHOD.
169-
170171
ENDCLASS.

src/checks/y_check_db_access_in_ut.clas.testclasses.abap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ CLASS ltc_risk_harmless IMPLEMENTATION.
167167
( ' MODIFY profiles FROM profile INDEX 1. ' )
168168
( ' DELETE profiles FROM profile. ' )
169169
( ' DELETE profiles INDEX lines( profiles ). ' )
170+
171+
( ' MODIFY profiles FROM VALUE #( ) TRANSPORTING profile WHERE username = sy-uname. ' )
170172
( ' ENDMETHOD. ' )
171173
( ' ENDCLASS. ' )
172174
).

0 commit comments

Comments
 (0)