@@ -21,6 +21,7 @@ import java.util.ArrayList
21
21
import java.util.HashMap
22
22
import java.util.LinkedHashMap
23
23
import java.util.List
24
+ import java.util.logging.Logger
24
25
import oracle.ide.config.Preferences
25
26
import org.oddgen.sqldev.generators.OddgenGenerator2
26
27
import org.oddgen.sqldev.generators.model.Node
@@ -32,12 +33,14 @@ import org.utplsql.sqldev.model.preference.PreferenceModel
32
33
import org.utplsql.sqldev.resources.UtplsqlResources
33
34
34
35
class TestGenerator implements OddgenGenerator2 {
36
+ static final Logger logger = Logger . getLogger(TestGenerator . name);
35
37
36
38
public static val YES = " Yes"
37
39
public static val NO = " No"
38
40
39
41
public static var GENERATE_FILES = UtplsqlResources . getString(" PREF_GENERATE_FILES_LABEL" )
40
42
public static var OUTPUT_DIRECTORY = UtplsqlResources . getString(" PREF_OUTPUT_DIRECTORY_LABEL" )
43
+ public static var DELETE_EXISTING_FILES = UtplsqlResources . getString(" PREF_DELETE_EXISTING_FILES_LABEL" )
41
44
public static var TEST_PACKAGE_PREFIX = UtplsqlResources . getString(" PREF_TEST_PACKAGE_PREFIX_LABEL" )
42
45
public static var TEST_PACKAGE_SUFFIX = UtplsqlResources . getString(" PREF_TEST_PACKAGE_SUFFIX_LABEL" )
43
46
public static var TEST_UNIT_PREFIX = UtplsqlResources . getString(" PREF_TEST_UNIT_PREFIX_LABEL" )
@@ -56,8 +59,6 @@ class TestGenerator implements OddgenGenerator2 {
56
59
val context = new GenContext ()
57
60
context. objectType = node. toObjectType
58
61
context. objectName = node. toObjectName
59
- context. generateFiles = node. params. get(GENERATE_FILES ) == YES
60
- context. outputDirectory = node. params. get(OUTPUT_DIRECTORY )
61
62
context. testPackagePrefix = node. params. get(TEST_PACKAGE_PREFIX ). toLowerCase
62
63
context. testPackageSuffix = node. params. get(TEST_PACKAGE_SUFFIX ). toLowerCase
63
64
context. testUnitPrefix = node. params. get(TEST_UNIT_PREFIX ). toLowerCase
@@ -75,7 +76,21 @@ class TestGenerator implements OddgenGenerator2 {
75
76
}
76
77
77
78
private def void saveConsoleOutput (String s ) {
78
- consoleOutput. add(s)
79
+ if (s !== null ) {
80
+ for (line : s. split(" [\\ n\\ r]+" )) {
81
+ consoleOutput. add(line)
82
+ }
83
+ }
84
+ }
85
+
86
+ private def void logConsoleOutput () {
87
+ for (line : consoleOutput) {
88
+ if (line. contains(" error" ) || line. startsWith(" Cannot" )) {
89
+ logger. severe(line)
90
+ } else {
91
+ logger. fine(line)
92
+ }
93
+ }
79
94
}
80
95
81
96
private def String deleteFile (File file ) {
@@ -145,6 +160,7 @@ class TestGenerator implements OddgenGenerator2 {
145
160
val params = new LinkedHashMap<String , String > ()
146
161
params. put(GENERATE_FILES , if (preferences. generateFiles) {YES } else {NO })
147
162
params. put(OUTPUT_DIRECTORY , preferences. outputDirectory)
163
+ params. put(DELETE_EXISTING_FILES , if (preferences. deleteExistingFiles) {YES } else {NO })
148
164
params. put(TEST_PACKAGE_PREFIX , preferences. testPackagePrefix)
149
165
params. put(TEST_PACKAGE_SUFFIX , preferences. testPackageSuffix)
150
166
params. put(TEST_UNIT_PREFIX , preferences. testUnitPrefix)
@@ -197,22 +213,27 @@ class TestGenerator implements OddgenGenerator2 {
197
213
lov. put(GENERATE_COMMENTS , #[YES , NO ])
198
214
lov. put(DISABLE_TESTS , #[YES , NO ])
199
215
lov. put(GENERATE_FILES , #[YES , NO ])
216
+ lov. put(DELETE_EXISTING_FILES , #[YES , NO ])
200
217
return lov
201
218
}
202
219
203
220
override getParamStates (Connection conn , LinkedHashMap<String , String > params , List<Node > nodes ) {
204
221
val paramStates = new HashMap<String , Boolean >
205
222
paramStates. put(OUTPUT_DIRECTORY , params. get(GENERATE_FILES ) == YES )
223
+ paramStates. put(DELETE_EXISTING_FILES , params. get(GENERATE_FILES ) == YES )
206
224
return paramStates
207
225
}
208
226
209
227
override generateProlog (Connection conn , List<Node > nodes ) '''
210
228
«val generateFiles = nodes.get (0 ).params.get (GENERATE_FILES ) == YES»
211
229
«val outputDirectory = nodes.get (0 ).params.get (OUTPUT_DIRECTORY )»
230
+ «val deleteExistingfiles = nodes.get (0 ).params.get (DELETE_EXISTING_FILES ) == YES»
212
231
«IF generateFiles»
213
232
«resetConsoleOutput»
214
233
«outputDirectory.mkdirs.saveConsoleOutput»
215
- «deleteFiles (outputDirectory ).toString.saveConsoleOutput»
234
+ «IF deleteExistingfiles»
235
+ «deleteFiles (outputDirectory ).toString.saveConsoleOutput»
236
+ «ENDIF»
216
237
--
217
238
-- install generated utPLSQL test packages
218
239
--
@@ -232,10 +253,11 @@ class TestGenerator implements OddgenGenerator2 {
232
253
233
254
«ENDIF»
234
255
«ENDFOR»
235
- «IF generateFiles && consoleOutput.size > 0»
256
+ «logConsoleOutput»
257
+ «IF generateFiles && consoleOutput.findFirst[it.contains ("error ")] !== null»
236
258
237
259
--
238
- -- console output produced during the generation of this script
260
+ -- console output produced during the generation of this script ( errors found )
239
261
--
240
262
/*
241
263
0 commit comments