@@ -16,9 +16,9 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
1616
1717 def " test setup works" () {
1818 when :
19- def result = gradleRunner(" validateTransportVersionDefinitions " , " validateTransportVersionReferences" ). build()
19+ def result = gradleRunner(" validateTransportVersionResources " , " validateTransportVersionReferences" ). build()
2020 then :
21- result. task(" :myserver:validateTransportVersionDefinitions " ). outcome == TaskOutcome . SUCCESS
21+ result. task(" :myserver:validateTransportVersionResources " ). outcome == TaskOutcome . SUCCESS
2222 result. task(" :myserver:validateTransportVersionReferences" ). outcome == TaskOutcome . SUCCESS
2323 result. task(" :myplugin:validateTransportVersionReferences" ). outcome == TaskOutcome . SUCCESS
2424 }
@@ -32,27 +32,27 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
3232 when :
3333 def result = validateReferencesFails(" myplugin" )
3434 then :
35- assertReferencesFailure (result, " myplugin" , " TransportVersion.fromName(\" dne\" ) was used at " +
35+ assertValidateReferencesFailure (result, " myplugin" , " TransportVersion.fromName(\" dne\" ) was used at " +
3636 " org.elasticsearch.plugin.MyPlugin line 6, but lacks a transport version definition." )
3737 }
3838
3939 def " references must be defined" () {
4040 given :
4141 namedTransportVersion(" not_used" , " 1000000" )
4242 when :
43- def result = validateDefinitionsFails ()
43+ def result = validateResourcesFails ()
4444 then :
45- assertDefinitionsFailure (result, " Transport version definition file " +
45+ assertValidateResourcesFailure (result, " Transport version definition file " +
4646 " [myserver/src/main/resources/transport/definitions/named/not_used.csv] is not referenced" )
4747 }
4848
4949 def " names must be lowercase alphanum or underscore" () {
5050 given :
51- definedAndUsedTransportVersion (" ${ name} " , " 8100000" , " TestNames" )
51+ namedAndReferencedTransportVersion (" ${ name} " , " 8100000" , " TestNames" )
5252 when :
53- def result = validateDefinitionsFails ()
53+ def result = validateResourcesFails ()
5454 then :
55- assertDefinitionsFailure (result, " Transport version definition file " +
55+ assertValidateResourcesFailure (result, " Transport version definition file " +
5656 " [myserver/src/main/resources/transport/definitions/named/${ name} .csv] does not have a valid name, " +
5757 " must be lowercase alphanumeric and underscore" )
5858
@@ -62,130 +62,130 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
6262
6363 def " definitions contain at least one id" () {
6464 given :
65- definedAndUsedTransportVersion (" empty" , " " )
65+ namedAndReferencedTransportVersion (" empty" , " " )
6666 when :
67- def result = validateDefinitionsFails ()
67+ def result = validateResourcesFails ()
6868 then :
69- assertDefinitionsFailure (result, " Transport version definition file " +
69+ assertValidateResourcesFailure (result, " Transport version definition file " +
7070 " [myserver/src/main/resources/transport/definitions/named/empty.csv] does not contain any ids" )
7171 }
7272
7373 def " definitions have ids in descending order" () {
7474 given :
75- definedAndUsedTransportVersion (" out_of_order" , " 8100000,8200000" )
75+ namedAndReferencedTransportVersion (" out_of_order" , " 8100000,8200000" )
7676 when :
77- def result = validateDefinitionsFails ()
77+ def result = validateResourcesFails ()
7878 then :
79- assertDefinitionsFailure (result, " Transport version definition file " +
79+ assertValidateResourcesFailure (result, " Transport version definition file " +
8080 " [myserver/src/main/resources/transport/definitions/named/out_of_order.csv] does not have ordered ids" )
8181 }
8282
8383 def " definition ids are unique" () {
8484 given :
85- definedAndUsedTransportVersion (" duplicate" , " 8123000" )
85+ namedAndReferencedTransportVersion (" duplicate" , " 8123000" )
8686 when :
87- def result = validateDefinitionsFails ()
87+ def result = validateResourcesFails ()
8888 then :
89- assertDefinitionsFailure (result, " Transport version definition file " +
89+ assertValidateResourcesFailure (result, " Transport version definition file " +
9090 " [myserver/src/main/resources/transport/definitions/named/existing_92.csv] contains id 8123000 already defined in " +
9191 " [myserver/src/main/resources/transport/definitions/named/duplicate.csv]" )
9292 }
9393
9494 def " definitions have bwc ids with non-zero patch part" () {
9595 given :
96- definedAndUsedTransportVersion (" patched" , " 8200000,8100000" )
96+ namedAndReferencedTransportVersion (" patched" , " 8200000,8100000" )
9797 when :
98- def result = validateDefinitionsFails ()
98+ def result = validateResourcesFails ()
9999 then :
100- assertDefinitionsFailure (result, " Transport version definition file " +
100+ assertValidateResourcesFailure (result, " Transport version definition file " +
101101 " [myserver/src/main/resources/transport/definitions/named/patched.csv] contains bwc id [8100000] with a patch part of 0" )
102102 }
103103
104104 def " definitions have primary ids which cannot change" () {
105105 given :
106106 namedTransportVersion(" existing_92" , " 8500000" )
107107 when :
108- def result = validateDefinitionsFails ()
108+ def result = validateResourcesFails ()
109109 then :
110- assertDefinitionsFailure (result, " Transport version definition file " +
110+ assertValidateResourcesFailure (result, " Transport version definition file " +
111111 " [myserver/src/main/resources/transport/definitions/named/existing_92.csv] has modified primary id from 8123000 to 8500000" )
112112 }
113113
114114 def " cannot change committed ids to a branch" () {
115115 given :
116116 namedTransportVersion(" existing_92" , " 8123000,8012002" )
117117 when :
118- def result = validateDefinitionsFails ()
118+ def result = validateResourcesFails ()
119119 then :
120- assertDefinitionsFailure (result, " Transport version definition file " +
120+ assertValidateResourcesFailure (result, " Transport version definition file " +
121121 " [myserver/src/main/resources/transport/definitions/named/existing_92.csv] modifies existing patch id from 8012001 to 8012002" )
122122 }
123123
124124 def " latest files must reference defined name" () {
125125 given :
126126 latestTransportVersion(" 9.2" , " dne" , " 8123000" )
127127 when :
128- def result = validateDefinitionsFails ()
128+ def result = validateResourcesFails ()
129129 then :
130- assertDefinitionsFailure (result, " Latest transport version file " +
130+ assertValidateResourcesFailure (result, " Latest transport version file " +
131131 " [myserver/src/main/resources/transport/latest/9.2.csv] contains transport version name [dne] which is not defined" )
132132 }
133133
134134 def " latest files id must exist in definition" () {
135135 given :
136136 latestTransportVersion(" 9.2" , " existing_92" , " 8124000" )
137137 when :
138- def result = validateDefinitionsFails ()
138+ def result = validateResourcesFails ()
139139 then :
140- assertDefinitionsFailure (result, " Latest transport version file " +
140+ assertValidateResourcesFailure (result, " Latest transport version file " +
141141 " [myserver/src/main/resources/transport/latest/9.2.csv] has id 8124000 which is not in definition " +
142142 " [myserver/src/main/resources/transport/definitions/named/existing_92.csv]" )
143143 }
144144
145145 def " latest files have latest id within base" () {
146146 given :
147147 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" )
151151 when :
152- def result = validateDefinitionsFails ()
152+ def result = validateResourcesFails ()
153153 then :
154- assertDefinitionsFailure (result, " Latest transport version file " +
154+ assertValidateResourcesFailure (result, " Latest transport version file " +
155155 " [myserver/src/main/resources/transport/latest/9.0.csv] has id 8110001 from [seemingly_latest] with base 8110000 " +
156156 " but another id 8110002 from [actual_latest] is later for that base" )
157157 }
158158
159159 def " latest files cannot change base id" () {
160160 given :
161- definedAndUsedTransportVersion (" original" , " 8013000" )
162- definedAndUsedTransportVersion (" patch" , " 8015000,8013001" )
161+ namedAndReferencedTransportVersion (" original" , " 8013000" )
162+ namedAndReferencedTransportVersion (" patch" , " 8015000,8013001" )
163163 latestTransportVersion(" 9.1" , " patch" , " 8013001" )
164164 when :
165- def result = validateDefinitionsFails ()
165+ def result = validateResourcesFails ()
166166 then :
167- assertDefinitionsFailure (result, " Latest transport version file " +
167+ assertValidateResourcesFailure (result, " Latest transport version file " +
168168 " [myserver/src/main/resources/transport/latest/9.1.csv] modifies base id from 8012000 to 8013000" )
169169 }
170170
171171 def " ids must be dense" () {
172172 given :
173- definedAndUsedTransportVersion (" original" , " 8013000" )
174- definedAndUsedTransportVersion (" patch1" , " 8015000,8013002" )
173+ namedAndReferencedTransportVersion (" original" , " 8013000" )
174+ namedAndReferencedTransportVersion (" patch1" , " 8015000,8013002" )
175175 latestTransportVersion(" 9.0" , " patch1" , " 8013002" )
176176 when :
177- def result = validateDefinitionsFails ()
177+ def result = validateResourcesFails ()
178178 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" )
180180 }
181181
182182 def " primary id must not be patch version" () {
183183 given :
184- definedAndUsedTransportVersion (" patch" , " 8015001" )
184+ namedAndReferencedTransportVersion (" patch" , " 8015001" )
185185 when :
186- def result = validateDefinitionsFails ()
186+ def result = validateResourcesFails ()
187187 then :
188- assertDefinitionsFailure (result, " Transport version definition file " +
188+ assertValidateResourcesFailure (result, " Transport version definition file " +
189189 " [myserver/src/main/resources/transport/definitions/named/patch.csv] has patch version 8015001 as primary id" )
190190 }
191191
@@ -194,8 +194,39 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
194194 file(" myserver/src/main/resources/transport/unreferenced/initial_9_0_0.csv" ). delete()
195195 file(" myserver/src/main/resources/transport/unreferenced" ). deleteDir()
196196 when :
197- def result = gradleRunner(" :myserver:validateTransportVersionDefinitions " ). build()
197+ def result = gradleRunner(" :myserver:validateTransportVersionResources " ). build()
198198 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
200231 }
201232}
0 commit comments