99
1010package org.elasticsearch.gradle.internal.transport
1111
12- import org.elasticsearch.gradle.util.Pair
13- import org.gradle.internal.impldep.com.google.common.collect.Streams
1412import org.gradle.testkit.runner.TaskOutcome
1513
16- import java.util.stream.Stream
17-
1814class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTest {
1915 def " test setup works" () {
2016 when :
@@ -27,34 +23,45 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
2723 given :
2824 String tvName = " potato_tv"
2925 when :
30- def result = gradleRunner(" generateTransportVersionDefinition" , " --name=" + tvName, " --increment=1" ). build()
26+ def result = gradleRunner(
27+ " generateTransportVersionDefinition" ,
28+ " --name=" + tvName,
29+ " --increment=1" ,
30+ " --branches=main"
31+ ). build()
3132 then :
3233 result. task(" :myserver:generateTransportVersionDefinition" ). outcome == TaskOutcome . SUCCESS
3334 validateDefinitionFile(tvName, List . of(" 9.2" ))
3435 }
3536
36- void validateDefinitionFile (String name , List<String > branches ) { // TODO add primary increment
37- String filename = " myserver/src/main/resources/transport/definitions/named/" + name + " .csv"
37+ def " Missing required arguments should fail, state should remain unaltered" () {
38+ // TODO
39+ }
40+
41+ // TODO add a check for the increment, primary and patch
42+ void validateDefinitionFile (String definitionName , List<String > branches ) {
43+ String filename = " myserver/src/main/resources/transport/definitions/named/" + definitionName + " .csv"
3844 assert file(filename). exists()
3945
40- String contents = file(filename). text
41- assert contents. strip(). isEmpty() == false
42- String [] x = contents. strip(). split(" ," )
43- Stream<Integer > ids = Arrays . stream(x). map(Integer ::valueOf)
44- assert branches. size() == ids. count(): " The definition file does not have the correct number of ids"
46+ String definitionFileText = file(filename). text. strip()
47+ assert definitionFileText. isEmpty() == false : " The definition file must not be empty"
48+ List<Integer > definitionIDs = Arrays . stream(definitionFileText. split(" ," )). map(Integer ::valueOf). toList()
49+ assert branches. size() == definitionIDs. size(): " The definition file does not have an id for each branch"
4550
46- def latestInfo = branches. stream()
51+ def latestNamesToIds = branches. stream()
4752 .map { file(" myserver/src/main/resources/transport/latest/${ it} .csv" ). text }
48- .map { contents. strip(). split(" ," ) }
49- .map { Pair<String , Integer > . of(it. first(), Integer . valueOf(it. last())) }
53+ .map { it. strip(). split(" ," ) }
54+ .map { new Tuple2 (it. first(), Integer . valueOf(it. last())) }
55+ .toList()
56+
57+ for (int i = 0 ; i < definitionIDs. size(); i++ ) {
58+ int definitionID = definitionIDs[i]
59+ String nameInLatest = latestNamesToIds[i]. getV1()
60+ def idInLatest = latestNamesToIds[i]. getV2()
5061
51- Streams . zip(ids, latestInfo, { (id , latest ) -> Pair . of(id, latest) })
52- .forEach {
53- (id, Pair latest) -> {
54- assert name == latest. left(): " The latest file should contain the same name as the new transport version"
55- assert id == latest. right(): " The latest file should contain the same id as the new transport version"
56- }
57- }
62+ assert definitionName. equals(nameInLatest): " The latest and definition names must match"
63+ assert definitionID == idInLatest: " The latest and definition ids must match"
64+ }
5865 }
5966
6067 /*
0 commit comments