Задание НУ из ui

This commit is contained in:
emelianov
2026-05-29 12:41:32 +03:00
parent d693bf799d
commit 3fd702ca47
12 changed files with 418 additions and 12 deletions
@@ -14,6 +14,11 @@ import org.springframework.kafka.core.DefaultKafkaConsumerFactory
import org.springframework.kafka.listener.adapter.RecordFilterStrategy
import org.springframework.transaction.annotation.Transactional
import space.nstart.pcp.pcp_request_service.entity.PDCMEntity
import space.nstart.pcp.pcp_request_service.entity.SatelliteInitialConditionEntity
import space.nstart.pcp.pcp_types_lib.dto.ballistics.InitialConditionsDTO
import space.nstart.pcp.pcp_types_lib.dto.ballistics.MovementModel
import space.nstart.pcp.pcp_types_lib.dto.ballistics.OrbPointDTO
import space.nstart.pcp.pcp_types_lib.dto.ballistics.SatelliteICDTO
import java.time.LocalDateTime
import kotlin.test.assertEquals
@@ -41,6 +46,9 @@ class PDCMRepositoryTest {
@Autowired
private lateinit var repository: PDCMRepository
@Autowired
private lateinit var satelliteInitialConditionRepository: SatelliteInitialConditionRepository
@Test
fun `find satellite orbit availability returns all satellites with points when time is null`() {
persistPoint(11L, LocalDateTime.of(2026, 4, 14, 10, 0))
@@ -74,6 +82,34 @@ class PDCMRepositoryTest {
assertEquals(LocalDateTime.of(2026, 4, 14, 12, 0), actual.single().timeStop)
}
@Test
fun `satellite initial conditions repository returns last calculated condition`() {
val oldCondition = satelliteInitialConditionRepository.save(sampleInitialCondition(11L, 1L))
oldCondition.markLastCalculated(LocalDateTime.of(2026, 4, 14, 10, 0))
satelliteInitialConditionRepository.save(oldCondition)
val newCondition = satelliteInitialConditionRepository.save(sampleInitialCondition(11L, 2L))
satelliteInitialConditionRepository.clearLastCalculated(11L)
newCondition.markLastCalculated(LocalDateTime.of(2026, 4, 14, 12, 0))
satelliteInitialConditionRepository.save(newCondition)
satelliteInitialConditionRepository.save(sampleInitialCondition(11L, 3L))
entityManager.flush()
entityManager.clear()
val actual = satelliteInitialConditionRepository
.findFirstBySatelliteIdAndLastCalculatedTrueOrderByCalculatedAtDescIdDesc(11L)
assertEquals(2L, actual?.toDto()?.ic?.orbPoint?.revolution)
assertEquals(MovementModel.KONDOR, actual?.movementModel)
assertEquals(
1,
satelliteInitialConditionRepository.findAll().count { entity ->
entity.satelliteId == 11L && entity.lastCalculated
}
)
}
private fun persistPoint(satelliteId: Long, time: LocalDateTime) {
entityManager.persist(
PDCMEntity(
@@ -91,6 +127,28 @@ class PDCMRepositoryTest {
entityManager.flush()
}
private fun sampleInitialCondition(satelliteId: Long, revolution: Long) =
SatelliteInitialConditionEntity(
SatelliteICDTO(
satelliteId = satelliteId,
movementModel = MovementModel.KONDOR,
ic = InitialConditionsDTO(
orbPoint = OrbPointDTO(
time = LocalDateTime.of(2026, 4, 14, 10, 0).plusHours(revolution),
revolution = revolution,
vx = 1.0,
vy = 2.0,
vz = 3.0,
x = 4.0,
y = 5.0,
z = 6.0
),
sBall = 0.2,
f81 = 141.0
)
)
)
@TestConfiguration
class KafkaFilterStubConfiguration {
@Bean("kafkaListenerContainerFactory")