@@ -16,9 +16,9 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
16
16
17
17
def " test setup works" () {
18
18
when :
19
- def result = gradleRunner(" validateTransportVersionDefinitions " , " validateTransportVersionReferences" ). build()
19
+ def result = gradleRunner(" validateTransportVersionResources " , " validateTransportVersionReferences" ). build()
20
20
then :
21
- result. task(" :myserver:validateTransportVersionDefinitions " ). outcome == TaskOutcome . SUCCESS
21
+ result. task(" :myserver:validateTransportVersionResources " ). outcome == TaskOutcome . SUCCESS
22
22
result. task(" :myserver:validateTransportVersionReferences" ). outcome == TaskOutcome . SUCCESS
23
23
result. task(" :myplugin:validateTransportVersionReferences" ). outcome == TaskOutcome . SUCCESS
24
24
}
@@ -32,27 +32,27 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
32
32
when :
33
33
def result = validateReferencesFails(" myplugin" )
34
34
then :
35
- assertReferencesFailure (result, " myplugin" , " TransportVersion.fromName(\" dne\" ) was used at " +
35
+ assertValidateReferencesFailure (result, " myplugin" , " TransportVersion.fromName(\" dne\" ) was used at " +
36
36
" org.elasticsearch.plugin.MyPlugin line 6, but lacks a transport version definition." )
37
37
}
38
38
39
39
def " references must be defined" () {
40
40
given :
41
41
namedTransportVersion(" not_used" , " 1000000" )
42
42
when :
43
- def result = validateDefinitionsFails ()
43
+ def result = validateResourcesFails ()
44
44
then :
45
- assertDefinitionsFailure (result, " Transport version definition file " +
45
+ assertValidateResourcesFailure (result, " Transport version definition file " +
46
46
" [myserver/src/main/resources/transport/definitions/named/not_used.csv] is not referenced" )
47
47
}
48
48
49
49
def " names must be lowercase alphanum or underscore" () {
50
50
given :
51
- definedAndUsedTransportVersion (" ${ name} " , " 8100000" , " TestNames" )
51
+ namedAndReferencedTransportVersion (" ${ name} " , " 8100000" , " TestNames" )
52
52
when :
53
- def result = validateDefinitionsFails ()
53
+ def result = validateResourcesFails ()
54
54
then :
55
- assertDefinitionsFailure (result, " Transport version definition file " +
55
+ assertValidateResourcesFailure (result, " Transport version definition file " +
56
56
" [myserver/src/main/resources/transport/definitions/named/${ name} .csv] does not have a valid name, " +
57
57
" must be lowercase alphanumeric and underscore" )
58
58
@@ -62,130 +62,130 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
62
62
63
63
def " definitions contain at least one id" () {
64
64
given :
65
- definedAndUsedTransportVersion (" empty" , " " )
65
+ namedAndReferencedTransportVersion (" empty" , " " )
66
66
when :
67
- def result = validateDefinitionsFails ()
67
+ def result = validateResourcesFails ()
68
68
then :
69
- assertDefinitionsFailure (result, " Transport version definition file " +
69
+ assertValidateResourcesFailure (result, " Transport version definition file " +
70
70
" [myserver/src/main/resources/transport/definitions/named/empty.csv] does not contain any ids" )
71
71
}
72
72
73
73
def " definitions have ids in descending order" () {
74
74
given :
75
- definedAndUsedTransportVersion (" out_of_order" , " 8100000,8200000" )
75
+ namedAndReferencedTransportVersion (" out_of_order" , " 8100000,8200000" )
76
76
when :
77
- def result = validateDefinitionsFails ()
77
+ def result = validateResourcesFails ()
78
78
then :
79
- assertDefinitionsFailure (result, " Transport version definition file " +
79
+ assertValidateResourcesFailure (result, " Transport version definition file " +
80
80
" [myserver/src/main/resources/transport/definitions/named/out_of_order.csv] does not have ordered ids" )
81
81
}
82
82
83
83
def " definition ids are unique" () {
84
84
given :
85
- definedAndUsedTransportVersion (" duplicate" , " 8123000" )
85
+ namedAndReferencedTransportVersion (" duplicate" , " 8123000" )
86
86
when :
87
- def result = validateDefinitionsFails ()
87
+ def result = validateResourcesFails ()
88
88
then :
89
- assertDefinitionsFailure (result, " Transport version definition file " +
89
+ assertValidateResourcesFailure (result, " Transport version definition file " +
90
90
" [myserver/src/main/resources/transport/definitions/named/existing_92.csv] contains id 8123000 already defined in " +
91
91
" [myserver/src/main/resources/transport/definitions/named/duplicate.csv]" )
92
92
}
93
93
94
94
def " definitions have bwc ids with non-zero patch part" () {
95
95
given :
96
- definedAndUsedTransportVersion (" patched" , " 8200000,8100000" )
96
+ namedAndReferencedTransportVersion (" patched" , " 8200000,8100000" )
97
97
when :
98
- def result = validateDefinitionsFails ()
98
+ def result = validateResourcesFails ()
99
99
then :
100
- assertDefinitionsFailure (result, " Transport version definition file " +
100
+ assertValidateResourcesFailure (result, " Transport version definition file " +
101
101
" [myserver/src/main/resources/transport/definitions/named/patched.csv] contains bwc id [8100000] with a patch part of 0" )
102
102
}
103
103
104
104
def " definitions have primary ids which cannot change" () {
105
105
given :
106
106
namedTransportVersion(" existing_92" , " 8500000" )
107
107
when :
108
- def result = validateDefinitionsFails ()
108
+ def result = validateResourcesFails ()
109
109
then :
110
- assertDefinitionsFailure (result, " Transport version definition file " +
110
+ assertValidateResourcesFailure (result, " Transport version definition file " +
111
111
" [myserver/src/main/resources/transport/definitions/named/existing_92.csv] has modified primary id from 8123000 to 8500000" )
112
112
}
113
113
114
114
def " cannot change committed ids to a branch" () {
115
115
given :
116
116
namedTransportVersion(" existing_92" , " 8123000,8012002" )
117
117
when :
118
- def result = validateDefinitionsFails ()
118
+ def result = validateResourcesFails ()
119
119
then :
120
- assertDefinitionsFailure (result, " Transport version definition file " +
120
+ assertValidateResourcesFailure (result, " Transport version definition file " +
121
121
" [myserver/src/main/resources/transport/definitions/named/existing_92.csv] modifies existing patch id from 8012001 to 8012002" )
122
122
}
123
123
124
124
def " latest files must reference defined name" () {
125
125
given :
126
126
latestTransportVersion(" 9.2" , " dne" , " 8123000" )
127
127
when :
128
- def result = validateDefinitionsFails ()
128
+ def result = validateResourcesFails ()
129
129
then :
130
- assertDefinitionsFailure (result, " Latest transport version file " +
130
+ assertValidateResourcesFailure (result, " Latest transport version file " +
131
131
" [myserver/src/main/resources/transport/latest/9.2.csv] contains transport version name [dne] which is not defined" )
132
132
}
133
133
134
134
def " latest files id must exist in definition" () {
135
135
given :
136
136
latestTransportVersion(" 9.2" , " existing_92" , " 8124000" )
137
137
when :
138
- def result = validateDefinitionsFails ()
138
+ def result = validateResourcesFails ()
139
139
then :
140
- assertDefinitionsFailure (result, " Latest transport version file " +
140
+ assertValidateResourcesFailure (result, " Latest transport version file " +
141
141
" [myserver/src/main/resources/transport/latest/9.2.csv] has id 8124000 which is not in definition " +
142
142
" [myserver/src/main/resources/transport/definitions/named/existing_92.csv]" )
143
143
}
144
144
145
145
def " latest files have latest id within base" () {
146
146
given :
147
147
latestTransportVersion(" 9.0" , " seemingly_latest" , " 8110001" )
148
- definedAndUsedTransportVersion (" original" , " 8110000" )
149
- definedAndUsedTransportVersion (" seemingly_latest" , " 8111000,8110001" )
150
- definedAndUsedTransportVersion (" actual_latest" , " 8112000,8110002" )
148
+ namedAndReferencedTransportVersion (" original" , " 8110000" )
149
+ namedAndReferencedTransportVersion (" seemingly_latest" , " 8111000,8110001" )
150
+ namedAndReferencedTransportVersion (" actual_latest" , " 8112000,8110002" )
151
151
when :
152
- def result = validateDefinitionsFails ()
152
+ def result = validateResourcesFails ()
153
153
then :
154
- assertDefinitionsFailure (result, " Latest transport version file " +
154
+ assertValidateResourcesFailure (result, " Latest transport version file " +
155
155
" [myserver/src/main/resources/transport/latest/9.0.csv] has id 8110001 from [seemingly_latest] with base 8110000 " +
156
156
" but another id 8110002 from [actual_latest] is later for that base" )
157
157
}
158
158
159
159
def " latest files cannot change base id" () {
160
160
given :
161
- definedAndUsedTransportVersion (" original" , " 8013000" )
162
- definedAndUsedTransportVersion (" patch" , " 8015000,8013001" )
161
+ namedAndReferencedTransportVersion (" original" , " 8013000" )
162
+ namedAndReferencedTransportVersion (" patch" , " 8015000,8013001" )
163
163
latestTransportVersion(" 9.1" , " patch" , " 8013001" )
164
164
when :
165
- def result = validateDefinitionsFails ()
165
+ def result = validateResourcesFails ()
166
166
then :
167
- assertDefinitionsFailure (result, " Latest transport version file " +
167
+ assertValidateResourcesFailure (result, " Latest transport version file " +
168
168
" [myserver/src/main/resources/transport/latest/9.1.csv] modifies base id from 8012000 to 8013000" )
169
169
}
170
170
171
171
def " ids must be dense" () {
172
172
given :
173
- definedAndUsedTransportVersion (" original" , " 8013000" )
174
- definedAndUsedTransportVersion (" patch1" , " 8015000,8013002" )
173
+ namedAndReferencedTransportVersion (" original" , " 8013000" )
174
+ namedAndReferencedTransportVersion (" patch1" , " 8015000,8013002" )
175
175
latestTransportVersion(" 9.0" , " patch1" , " 8013002" )
176
176
when :
177
- def result = validateDefinitionsFails ()
177
+ def result = validateResourcesFails ()
178
178
then :
179
- assertDefinitionsFailure (result, " Transport version base id 8013000 is missing patch ids between 8013000 and 8013002" )
179
+ assertValidateResourcesFailure (result, " Transport version base id 8013000 is missing patch ids between 8013000 and 8013002" )
180
180
}
181
181
182
182
def " primary id must not be patch version" () {
183
183
given :
184
- definedAndUsedTransportVersion (" patch" , " 8015001" )
184
+ namedAndReferencedTransportVersion (" patch" , " 8015001" )
185
185
when :
186
- def result = validateDefinitionsFails ()
186
+ def result = validateResourcesFails ()
187
187
then :
188
- assertDefinitionsFailure (result, " Transport version definition file " +
188
+ assertValidateResourcesFailure (result, " Transport version definition file " +
189
189
" [myserver/src/main/resources/transport/definitions/named/patch.csv] has patch version 8015001 as primary id" )
190
190
}
191
191
@@ -194,8 +194,39 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
194
194
file(" myserver/src/main/resources/transport/unreferenced/initial_9_0_0.csv" ). delete()
195
195
file(" myserver/src/main/resources/transport/unreferenced" ). deleteDir()
196
196
when :
197
- def result = gradleRunner(" :myserver:validateTransportVersionDefinitions " ). build()
197
+ def result = gradleRunner(" :myserver:validateTransportVersionResources " ). build()
198
198
then :
199
- result. task(" :myserver:validateTransportVersionDefinitions" ). outcome == TaskOutcome . SUCCESS
199
+ result. task(" :myserver:validateTransportVersionResources" ). outcome == TaskOutcome . SUCCESS
200
+ }
201
+
202
+ def " latest can refer to an unreferenced definition" () {
203
+ given :
204
+ unreferencedTransportVersion(" initial_10.0.0" , " 10000000" )
205
+ latestTransportVersion(" 10.0" , " initial_10.0.0" , " 10000000" )
206
+ when :
207
+ def result = gradleRunner(" :myserver:validateTransportVersionResources" ). build()
208
+ then :
209
+ result. task(" :myserver:validateTransportVersionResources" ). outcome == TaskOutcome . SUCCESS
210
+ }
211
+
212
+ def " named and unreferenced definitions cannot have the same name" () {
213
+ given :
214
+ unreferencedTransportVersion(" existing_92" , " 10000000" )
215
+ when :
216
+ def result = validateResourcesFails()
217
+ then :
218
+ assertValidateResourcesFailure(result, " Transport version definition file " +
219
+ " [myserver/src/main/resources/transport/definitions/named/existing_92.csv] " +
220
+ " has same name as unreferenced definition " +
221
+ " [myserver/src/main/resources/transport/definitions/unreferenced/existing_92.csv]" )
222
+ }
223
+
224
+ def " unreferenced definitions can have primary ids that are patches" () {
225
+ given :
226
+ unreferencedTransportVersion(" initial_10.0.1" , " 10000001" )
227
+ when :
228
+ def result = gradleRunner(" :myserver:validateTransportVersionResources" ). build()
229
+ then :
230
+ result. task(" :myserver:validateTransportVersionResources" ). outcome == TaskOutcome . SUCCESS
200
231
}
201
232
}
0 commit comments