Расчет средних ЗРВ
This commit is contained in:
+37
@@ -10,6 +10,8 @@ import org.springframework.boot.test.web.server.LocalServerPort
|
||||
import org.springframework.test.context.bean.override.mockito.MockitoBean
|
||||
import org.springframework.web.reactive.function.client.WebClient
|
||||
import reactor.core.publisher.Flux
|
||||
import reactor.core.publisher.Mono
|
||||
import space.nstart.pcp.pcp_types_lib.dto.ballistics.PositionDTO
|
||||
import space.nstart.pcp.pcp_types_lib.dto.ballistics.RevolutionSign
|
||||
import space.nstart.pcp.pcp_types_lib.dto.ballistics.StationDTO
|
||||
import space.nstart.pcp.pcp_types_lib.dto.requests.ComplexPlanProcessRequestDTO
|
||||
@@ -61,6 +63,18 @@ class MapControllerComplexPlanTest {
|
||||
|
||||
private val objectMapper = ObjectMapper()
|
||||
|
||||
private fun stationEllipseRadius(stationId: String, orbitHeightKm: Double): Double {
|
||||
val actual = WebClient.create("http://localhost:$port")
|
||||
.post()
|
||||
.uri("/requests/station/$stationId?view=true&orbitHeightKm=$orbitHeightKm")
|
||||
.retrieve()
|
||||
.bodyToMono(String::class.java)
|
||||
.map(objectMapper::readTree)
|
||||
.block()!!
|
||||
|
||||
return actual[1]["ellipse"]["semiMajorAxis"].asDouble()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `local post api requests delegates to earth service facade`() {
|
||||
val responseId = UUID.fromString("11111111-1111-4111-8111-111111111111")
|
||||
@@ -256,11 +270,34 @@ class MapControllerComplexPlanTest {
|
||||
.block()!!
|
||||
|
||||
assertTrue(body.contains("cesiumContainer"))
|
||||
assertTrue(body.contains("stationOrbitHeightKm"))
|
||||
assertTrue(body.contains("Высота орбиты, км"))
|
||||
assertTrue(body.contains("dynamic_plan_map_layers.js"))
|
||||
assertTrue(body.contains("PcpDynamicPlanMapLayers"))
|
||||
verify(earthService).reqs()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `station czml endpoint uses orbit height for visibility zone`() {
|
||||
val stationId = "11111111-1111-4111-8111-111111111111"
|
||||
doReturn(
|
||||
Mono.just(
|
||||
StationDTO(
|
||||
id = UUID.fromString(stationId),
|
||||
number = 1,
|
||||
name = "Station 1",
|
||||
position = PositionDTO(lat = 55.0, long = 37.0, height = 200.0),
|
||||
elevationMin = 5.0
|
||||
)
|
||||
)
|
||||
).`when`(stationService).station(stationId)
|
||||
|
||||
val baseRadius = stationEllipseRadius(stationId, 500.0)
|
||||
val higherOrbitRadius = stationEllipseRadius(stationId, 700.0)
|
||||
|
||||
assertTrue(higherOrbitRadius > baseRadius)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `dynamic plan map layer keeps only one visible run`() {
|
||||
val body = WebClient.create("http://localhost:$port")
|
||||
|
||||
Reference in New Issue
Block a user