@@ -31,16 +31,15 @@ class MockBackend implements AutoCloseable {
3131
3232 private final Collection<Map<String , Object > > skippableTests = new CopyOnWriteArrayList<> ()
3333 private final Collection<Map<String , Object > > flakyTests = new CopyOnWriteArrayList<> ()
34+ private final Collection<Map<String , Object > > testManagement = new CopyOnWriteArrayList<> ()
3435 private final Collection<String > changedFiles = new CopyOnWriteArrayList<> ()
3536
3637 private boolean itrEnabled = true
3738 private boolean codeCoverageEnabled = true
38-
3939 private boolean testsSkippingEnabled = true
40-
4140 private boolean flakyRetriesEnabled = false
42-
4341 private boolean impactedTestsDetectionEnabled = false
42+ private boolean testManagementEnabled = false
4443
4544 void reset () {
4645 receivedTraces. clear()
@@ -83,6 +82,19 @@ class MockBackend implements AutoCloseable {
8382 changedFiles. add(relativePath)
8483 }
8584
85+ void givenTestManagement (boolean testManagementEnabled ) {
86+ this . testManagementEnabled = testManagementEnabled
87+ }
88+
89+ void givenQuarantinedTests (String module , String suite , String name ) {
90+ testManagement. add([
91+ " module" : module,
92+ " suite" : suite,
93+ " name" : name,
94+ " properties" : [" quarantined" : true ]
95+ ])
96+ }
97+
8698 String getIntakeUrl () {
8799 return intakeServer. address. toString()
88100 }
@@ -127,7 +139,10 @@ class MockBackend implements AutoCloseable {
127139 "code_coverage": $codeCoverageEnabled ,
128140 "tests_skipping": $testsSkippingEnabled ,
129141 "flaky_test_retries_enabled": $flakyRetriesEnabled ,
130- "impacted_tests_enabled": $impactedTestsDetectionEnabled
142+ "impacted_tests_enabled": $impactedTestsDetectionEnabled ,
143+ "test_management": {
144+ "enabled": $testManagementEnabled
145+ }
131146 }
132147 }
133148 }""" ). bytes)
@@ -225,6 +240,20 @@ class MockBackend implements AutoCloseable {
225240 .send(MockBackend . compress((""" { "data": $flakyTestsResponse } """ ). bytes))
226241 }
227242
243+ prefix(" /api/v2/test/libraries/test-management/tests" ) {
244+ Map<String , Map > modules = [:]
245+ for (Map<String , Object > test : testManagement) {
246+ Map<String , Map > suites = modules. computeIfAbsent(" ${ test.module} " , k -> [:]). computeIfAbsent(" suites" , k -> [:])
247+ Map<String , Map > tests = suites. computeIfAbsent(" ${ test.suite} " , k -> [:]). computeIfAbsent(" tests" , k -> [:])
248+ tests. computeIfAbsent(" ${ test.name} " , k -> [:]). put(" properties" , test. properties)
249+ }
250+
251+ String testManagementResponse = """ { "modules": ${ JSON_MAPPER.writeValueAsString(modules)} }"""
252+ response. status(200 )
253+ .addHeader(" Content-Encoding" , " gzip" )
254+ .send(MockBackend . compress((""" { "data": { "attributes": $testManagementResponse } } """ ). bytes))
255+ }
256+
228257 prefix(" /api/v2/apmtelemetry" ) {
229258 def telemetryRequest = JSON_MAPPER . readerFor(Map . class). readValue(request. body)
230259 def requestType = telemetryRequest[" request_type" ]
0 commit comments