Coverage Summary for Class: MonitoringInteractorImpl (cloud.mindbox.mobile_sdk.monitoring)

Class Method, % Branch, % Line, % Instruction, %
MonitoringInteractorImpl 0% (0/2) 0% (0/6) 0% (0/28)
MonitoringInteractorImpl$processLogs$1 0% (0/1) 0% (0/14) 0% (0/177)
MonitoringInteractorImpl$processLogs$1$3$1 0% (0/1) 0% (0/14) 0% (0/47)
Total 0% (0/4) 0% (0/34) 0% (0/252)


 package cloud.mindbox.mobile_sdk.monitoring
 
 import cloud.mindbox.mobile_sdk.inapp.domain.interfaces.repositories.MobileConfigRepository
 import cloud.mindbox.mobile_sdk.logger.MindboxLoggerImpl
 import cloud.mindbox.mobile_sdk.monitoring.domain.interfaces.LogRequestDataManager
 import cloud.mindbox.mobile_sdk.monitoring.domain.interfaces.LogResponseDataManager
 import cloud.mindbox.mobile_sdk.monitoring.domain.interfaces.MonitoringInteractor
 import cloud.mindbox.mobile_sdk.monitoring.domain.interfaces.MonitoringRepository
 import kotlinx.coroutines.async
 import kotlinx.coroutines.awaitAll
 import kotlinx.coroutines.launch
 
 internal class MonitoringInteractorImpl(
     private val mobileConfigRepository: MobileConfigRepository,
     private val monitoringRepository: MonitoringRepository,
     private val logResponseDataManager: LogResponseDataManager,
     private val logRequestDataManager: LogRequestDataManager,
 ) : MonitoringInteractor {
 
     override fun processLogs() {
         MindboxLoggerImpl.monitoringScope.launch {
             val firstLog = monitoringRepository.getFirstLog()
             val lastLog = monitoringRepository.getLastLog()
             val monitoring = mobileConfigRepository.getMonitoringSection()
             logRequestDataManager.filterCurrentDeviceUuidLogs(monitoring)
                 .filterNot { logRequest ->
                     logRequestDataManager.checkRequestIdProcessed(
                         monitoringRepository.getRequestIds(),
                         logRequest.requestId
                     )
                 }.onEach { logRequest ->
                     monitoringRepository.saveRequestId(logRequest.requestId)
                 }.map { logRequest ->
                     val logs = monitoringRepository.getLogs(logRequest.from, logRequest.to)
                     async {
                         monitoringRepository.sendLogs(
                             monitoringStatus = logResponseDataManager.getStatus(
                                 filteredLogs = logs,
                                 firstLog = firstLog,
                                 lastLog = lastLog,
                                 from = logRequest.from,
                                 to = logRequest.to
                             ),
                             requestId = logRequest.requestId,
                             logs = logResponseDataManager.getFilteredLogs(
                                 filteredLogs = logs,
                                 firstLog = firstLog,
                                 lastLog = lastLog,
                                 from = logRequest.from,
                                 to = logRequest.to
                             )
                         )
                     }
                 }.awaitAll()
         }
     }
 }