В следующем коде мне нужно протестировать метод getStudyStats
с использованием фреймворка Spock, но когда я передам ему только размер страницы и номер страницы, будет ошибка «1002 *.
package org.novartis.signal.dataservice.service
import org.novartis.signal.dataservice.model.entity.MVRDetails
import org.novartis.signal.dataservice.model.entity.StudyDetails
import org.novartis.signal.dataservice.model.report.StudyStatistic
import org.novartis.signal.dataservice.model.report.StudyStatisticReport
import org.novartis.signal.dataservice.repository.StudyDetailsRepo
import org.springframework.data.domain.Page
import org.springframework.data.domain.PageRequest
import org.springframework.stereotype.Service
import java.util.function.ToDoubleFunction
@Service
class StudyDetailsService(private val studyDetailsRepo: StudyDetailsRepo) {
fun getStudyDetails(): MutableList<StudyDetails> {
return studyDetailsRepo.findAll()
}
fun getStudyStats(pageNo: Int, pageSize: Int): StudyStatisticReport {
val studyPaging = PageRequest.of(pageNo, pageSize)
val studyDetails: Page<StudyDetails> = studyDetailsRepo.findAll(studyPaging)
return buildStudyStats(studyDetails.content, studyDetails.totalElements)
}
private fun buildStudyStats(paginatedStudyDetails: List<StudyDetails>, totalElement: Long): StudyStatisticReport {
val studyStatistics = mutableListOf<StudyStatistic>()
for (study in paginatedStudyDetails) {
val studyStat = StudyStatistic(
study.studyCodeAlias,
getTotalSignals(study.mvrDetails),
study.mvrDetails.size,
study.siteDetails.size
)
studyStatistics.add(studyStat)
}
return StudyStatisticReport(studyStatistics, totalElement)
}
private fun getTotalSignals(mvrDetails: List<MVRDetails>): Double =
mvrDetails.stream()
.mapToDouble(ToDoubleFunction { mvrDetail -> mvrDetail.noOfCM + mvrDetail.noOfPUI })
.sum();
}
».