1
+ package tadoclient.apis
2
+
3
+ import org.junit.jupiter.api.*
4
+ import org.springframework.beans.factory.annotation.Autowired
5
+ import org.springframework.beans.factory.annotation.Qualifier
6
+ import org.junit.jupiter.api.condition.EnabledIf
7
+ import org.springframework.boot.test.context.SpringBootTest
8
+ import org.springframework.web.client.RestClient
9
+ import tadoclient.Application
10
+ import tadoclient.TadoConfig
11
+ import tadoclient.verify.assertCorrectResponse
12
+ import tadoclient.verify.verifyHeatingCircuit
13
+ import tadoclient.verify.verifyZoneControl
14
+ import kotlin.test.assertNotEquals
15
+
16
+ @SpringBootTest(classes = arrayOf( Application ::class ))
17
+ @TestMethodOrder(MethodOrderer .OrderAnnotation ::class )
18
+ @DisplayName(" tado API - heating circuit" )
19
+ class HeatingCircuitAPI_IT (
20
+ @Qualifier(" tadoStrictRestClient" )
21
+ val tadoStrictRestClient : RestClient ,
22
+
23
+ @Autowired
24
+ tadoConfig : TadoConfig
25
+ ): BaseTest(tadoConfig) {
26
+ val tadoStrictHeatingCircuitApiAPI = HeatingCircuitApi (tadoStrictRestClient)
27
+
28
+ @Test
29
+ @DisplayName(" GET /homes/{homeId}/heatingCircuits" )
30
+ @Order(10 )
31
+ @EnabledIf(value = " isHomeConfigured" , disabledReason = " no home specified in tado set-up" )
32
+ fun getHeatingCircuits () {
33
+ val endpoint = " GET /homes/{homeId}/heatingCircuits"
34
+ val heatingCircuits = assertCorrectResponse { tadoStrictHeatingCircuitApiAPI.getHeatingCircuits(tadoConfig.home!! .id) }
35
+ assertNotEquals(0 , heatingCircuits.size)
36
+ heatingCircuits.forEachIndexed {i, elem -> verifyHeatingCircuit(elem, " $endpoint [$i ]" ) }
37
+ }
38
+
39
+ // Integration test for GET /homes/{homeId}/zones/{zoneId}/control
40
+ // see DeviceApi_IT
41
+ // (the operation belongs to multiple API operation groups, and the 'device' group is considered to be the primary one)
42
+
43
+ @Test
44
+ @DisplayName(" GET /homes/{homeId}/zones/{zoneId}/control/heatingCircuit" )
45
+ @Order(20 )
46
+ @EnabledIf(value = " isHeatingZoneConfigured" , disabledReason = " no home specified in tado set-up" )
47
+ fun setHeatingCircuitForZone () {
48
+ val endpoint = " PUT /homes/{homeId}/zones/{zoneId}/control/heatingCircuit"
49
+ val zoneControl = assertCorrectResponse { tadoStrictHeatingCircuitApiAPI.setHeatingCircuit(tadoConfig.home!! .id, tadoConfig.zone!! .heating!! .id) }
50
+ verifyZoneControl(zoneControl, endpoint) }
51
+ }
52
+ }
0 commit comments