Skip to content

Commit 9725948

Browse files
committed
more tests
1 parent 2b8c8f6 commit 9725948

File tree

1 file changed

+73
-6
lines changed

1 file changed

+73
-6
lines changed

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/TransportVersionGenerationFuncTest.groovy

Lines changed: 73 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
230230
]
231231
}
232232

233-
def "when a definition file is deleted and the reference and latest files haven't been, the system should regenerate"(List<String> branches) {
233+
def "when a definition file is deleted and the reference and latest files haven't been changed, the system should regenerate"(List<String> branches) {
234234
given:
235235
String definitionName = "test_tv"
236236
referencedTransportVersion(definitionName)
@@ -248,6 +248,7 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
248248
result.task(":myserver:generateTransportVersionDefinition").outcome == TaskOutcome.SUCCESS
249249
result.task(":myserver:validateTransportVersionDefinitions").outcome == TaskOutcome.SUCCESS
250250
validateDefinitionFile(definitionName, originalLatestFiles)
251+
def latestFilesAfterGeneration = readLatestFiles(branches)
251252

252253
when: "The definition file is deleted"
253254
file("myserver/src/main/resources/transport/definitions/named/${definitionName}.csv").delete()
@@ -273,6 +274,14 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
273274
secondResult.task(":myserver:validateTransportVersionDefinitions").outcome == TaskOutcome.SUCCESS
274275
validateDefinitionFile(definitionName, originalLatestFiles)
275276

277+
and: "The latest files should remain unchanged"
278+
latestFilesAfterGeneration.forEach { originalLatest ->
279+
def latest = readLatestFile(originalLatest.branch)
280+
assert latest.branch == originalLatest.branch
281+
assert latest.id == originalLatest.id
282+
assert latest.name == originalLatest.name
283+
}
284+
276285
where:
277286
branches << [
278287
["9.2"],
@@ -300,6 +309,7 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
300309
validateDefinitionFile(definitionName, originalLatestFiles)
301310

302311
when: "The latest files are modified"
312+
List<LatestFile> latestFilesAfterGeneration = readLatestFiles(branches)
303313
originalLatestFiles.forEach {
304314
latestTransportVersion(it.branch, it.name + "_modification", (it.id + 7).toString())
305315
}
@@ -316,6 +326,13 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
316326
secondResult.task(":myserver:validateTransportVersionDefinitions").outcome == TaskOutcome.SUCCESS
317327
validateDefinitionFile(definitionName, originalLatestFiles)
318328

329+
latestFilesAfterGeneration.forEach { originalLatest ->
330+
def latest = readLatestFile(originalLatest.branch)
331+
assert latest.branch == originalLatest.branch
332+
assert latest.id == originalLatest.id
333+
assert latest.name == originalLatest.name
334+
}
335+
319336
where:
320337
branches << [
321338
["9.2"],
@@ -324,15 +341,15 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
324341
}
325342

326343
// TODO legitimate bug, need to always clean up latest for patch versions
327-
def "When a definition is created with a patch version, then generation is called without the patch version, the state should be updated"() {
344+
def "When a definition is created with a patch version, then generation is called without the patch version, the latest patch file should be reverted"() {
328345
given:
329346
String definitionName = "test_tv"
330347
referencedTransportVersion(definitionName)
331348
List<String> branches = ["9.2", "9.1"]
332349
List<String> mainBranch = ["9.2"]
333350
List<LatestFile> originalLatestFilesWithPatch = readLatestFiles(branches)
334351
List<LatestFile> originalLatestMainFile = readLatestFiles(mainBranch)
335-
String originalLatestPatchText = file("myserver/src/main/resources/transport/latest/9.1.csv").text.strip()
352+
LatestFile originalLatestPatchFile = readLatestFile("9.1")
336353

337354
when: "The definition is generated with a patch version"
338355
def result = gradleRunner(
@@ -358,14 +375,64 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
358375
secondResult.task(":myserver:generateTransportVersionDefinition").outcome == TaskOutcome.SUCCESS
359376
secondResult.task(":myserver:validateTransportVersionDefinitions").outcome == TaskOutcome.SUCCESS
360377
validateDefinitionFile(definitionName, originalLatestMainFile)
361-
originalLatestPatchText == file("myserver/src/main/resources/transport/latest/9.1.csv").text.strip()
378+
379+
and: "The latest file for the patch version should be reverted to the original state"
380+
LatestFile latestPatchFile = readLatestFile("9.1")
381+
latestPatchFile.id == originalLatestPatchFile.id
382+
latestPatchFile.name == originalLatestPatchFile.name
383+
latestPatchFile.branch == originalLatestPatchFile.branch
362384
}
363385

364-
def "Latest files mangled by a merge conflict should be regenerated, and the most recent definition file should be updated"() {
365386

387+
def "When a reference is deleted, the system should delete the definition and revert the latest files"(List<String> branches) {
388+
given:
389+
String definitionName = "test_tv"
390+
referencedTransportVersion(definitionName)
391+
List<LatestFile> originalLatestFiles = readLatestFiles(branches)
392+
393+
when: "The definition is generated"
394+
def result = gradleRunner(
395+
":myserver:validateTransportVersionDefinitions",
396+
":myserver:generateTransportVersionDefinition",
397+
"--name=" + definitionName,
398+
"--branches=" + branches.join(",")
399+
).build()
400+
401+
then: "The generation task should succeed and create the definition file"
402+
result.task(":myserver:generateTransportVersionDefinition").outcome == TaskOutcome.SUCCESS
403+
result.task(":myserver:validateTransportVersionDefinitions").outcome == TaskOutcome.SUCCESS
404+
validateDefinitionFile(definitionName, originalLatestFiles)
405+
406+
when: "The reference is deleted and the generation is run again"
407+
deleteTransportVersionReference(definitionName)
408+
def secondResult = gradleRunner(
409+
":myserver:validateTransportVersionDefinitions",
410+
":myserver:generateTransportVersionDefinition",
411+
"--branches=" + branches.join(",")
412+
).build()
413+
414+
then: "The generation task should succeed and the definition file should be deleted"
415+
!file("myserver/src/main/resources/transport/definitions/named/${definitionName}.csv").exists()
416+
secondResult.task(":myserver:generateTransportVersionDefinition").outcome == TaskOutcome.SUCCESS
417+
secondResult.task(":myserver:validateTransportVersionDefinitions").outcome == TaskOutcome.SUCCESS
418+
419+
and: "The latest files should be reverted to their original state"
420+
originalLatestFiles.forEach { originalLatest ->
421+
def latest = readLatestFile(originalLatest.branch)
422+
assert latest.branch == originalLatest.branch
423+
assert latest.id == originalLatest.id
424+
assert latest.name == originalLatest.name
425+
}
426+
427+
where:
428+
branches << [
429+
["9.2"],
430+
["9.2", "9.1"]
431+
]
366432
}
367433

368-
def "When a reference is deleted, the system should revert to the original state"() {
434+
435+
def "Latest files mangled by a merge conflict should be regenerated, and the most recent definition file should be updated"() {
369436

370437
}
371438

0 commit comments

Comments
 (0)