@@ -15,12 +15,12 @@ CLASS y_check_db_access_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base CRE
15
15
DATA tokens_not_allowed TYPE y_char255_tab.
16
16
DATA has_framework TYPE abap_bool .
17
17
18
- METHODS inspect_class_definition IMPORTING method TYPE sstruc.
18
+ METHODS inspect_class_definition IMPORTING class_implementation TYPE sstruc.
19
19
20
20
METHODS is_persistent_object IMPORTING obj_name TYPE string
21
21
RETURNING VALUE (result ) TYPE abap_bool .
22
22
23
- METHODS consolidade_tokens IMPORTING statement TYPE sstmnt
23
+ METHODS consolidade_tokens IMPORTING statement TYPE sstmnt
24
24
RETURNING VALUE (result ) TYPE string .
25
25
26
26
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
32
32
ENDCLASS .
33
33
34
34
35
+
35
36
CLASS y_check_db_access_in_ut IMPLEMENTATION .
36
37
37
38
@@ -47,7 +48,7 @@ CLASS y_check_db_access_in_ut IMPLEMENTATION.
47
48
settings-apply_on_test_code = abap_true .
48
49
settings-documentation = | { c_docs_path-checks } db-access-in-ut.md| .
49
50
50
- relevant_statement_types = VALUE #( ( scan_struc_stmnt_type-method ) ).
51
+ relevant_statement_types = VALUE #( ( scan_struc_stmnt_type-class_implementation ) ).
51
52
relevant_structure_types = VALUE #( ).
52
53
53
54
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.
85
86
ENDIF .
86
87
87
88
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
+
91
93
ENDLOOP .
92
94
ENDMETHOD .
93
95
@@ -102,33 +104,33 @@ CLASS y_check_db_access_in_ut IMPLEMENTATION.
102
104
METHOD inspect_class_definition .
103
105
DATA test_risk_level TYPE string .
104
106
105
- CLEAR has_framework.
106
-
107
107
TRY .
108
- DATA (class_implementation ) = ref_scan_manager->structures[ method-back ].
109
108
DATA (class_definition ) = ref_scan_manager->structures[ class_implementation-back ].
110
109
CATCH cx_sy_itab_line_not_found.
111
110
RETURN .
112
111
ENDTRY .
113
112
113
+ has_framework = abap_false .
114
+
114
115
LOOP AT ref_scan_manager->statements ASSIGNING FIELD-SYMBOL (<statement> )
115
116
FROM class_definition-stmnt_from TO class_definition-stmnt_to.
117
+
116
118
IF is_in_scope( <statement> ) = abap_false .
117
119
CONTINUE .
118
120
ENDIF .
119
121
120
122
DATA (tokens ) = consolidade_tokens( <statement> ).
121
123
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
123
125
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 ).
126
128
127
129
has_framework = COND #( WHEN tokens CS 'IF_OSQL_TEST_ENVIRONMENT' THEN abap_true
128
130
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 ).
132
134
ENDLOOP .
133
135
134
136
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.
159
161
160
162
METHOD is_internal_table .
161
163
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 ).
163
165
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 ).
166
168
167
169
result = xsdbool ( is_persistent_object( table ) = abap_false ).
168
170
ENDMETHOD .
169
-
170
171
ENDCLASS .
0 commit comments