1717package com.duckduckgo.pir.impl.pixels
1818
1919import android.content.Context
20- import androidx.work.testing.TestListenableWorkerBuilder
2120import com.duckduckgo.common.test.CoroutineTestRule
2221import com.duckduckgo.common.utils.CurrentTimeProvider
2322import com.duckduckgo.pir.impl.models.Broker
@@ -35,7 +34,7 @@ import org.mockito.kotlin.verify
3534import org.mockito.kotlin.whenever
3635import java.util.concurrent.TimeUnit
3736
38- class PirCustomStatsWorkerTest {
37+ class RealOptOut24HourSubmissionSuccessRateReporterTest {
3938
4039 @get:Rule
4140 var coroutineRule = CoroutineTestRule ()
@@ -46,7 +45,7 @@ class PirCustomStatsWorkerTest {
4645 private val mockPirPixelSender: PirPixelSender = mock()
4746 private val context: Context = mock()
4847
49- private lateinit var worker : PirCustomStatsWorker
48+ private lateinit var toTest : RealOptOut24HourSubmissionSuccessRateReporter
5049
5150 // Test data
5251 // January 15, 2024 10:00:00 UTC
@@ -89,13 +88,12 @@ class PirCustomStatsWorkerTest {
8988
9089 @Before
9190 fun setUp () {
92- worker = TestListenableWorkerBuilder
93- .from(context, PirCustomStatsWorker ::class .java)
94- .build()
95- worker.pirRepository = mockPirRepository
96- worker.currentTimeProvider = mockCurrentTimeProvider
97- worker.optOutSubmitRateCalculator = mockOptOutSubmitRateCalculator
98- worker.pirPixelSender = mockPirPixelSender
91+ toTest = RealOptOut24HourSubmissionSuccessRateReporter (
92+ optOutSubmitRateCalculator = mockOptOutSubmitRateCalculator,
93+ pirRepository = mockPirRepository,
94+ currentTimeProvider = mockCurrentTimeProvider,
95+ pirPixelSender = mockPirPixelSender,
96+ )
9997 }
10098
10199 @Test
@@ -113,7 +111,7 @@ class PirCustomStatsWorkerTest {
113111 ),
114112 ).thenReturn(0.5 )
115113
116- worker.doWork ()
114+ toTest.attemptFirePixel ()
117115
118116 verify(mockPirPixelSender).reportBrokerCustomStateOptOutSubmitRate(
119117 brokerUrl = testBroker1.url,
@@ -130,7 +128,8 @@ class PirCustomStatsWorkerTest {
130128 whenever(mockPirRepository.getCustomStatsPixelsLastSentMs()).thenReturn(startDate)
131129 whenever(mockCurrentTimeProvider.currentTimeMillis()).thenReturn(now)
132130
133- worker.doWork()
131+ toTest.attemptFirePixel()
132+
134133 verify(mockPirRepository, never()).getAllActiveBrokerObjects()
135134 verify(mockPirPixelSender, never()).reportBrokerCustomStateOptOutSubmitRate(any(), any())
136135 verify(mockPirRepository, never()).setCustomStatsPixelsLastSentMs(any())
@@ -153,7 +152,8 @@ class PirCustomStatsWorkerTest {
153152 ),
154153 ).thenReturn(0.75 )
155154
156- worker.doWork()
155+ toTest.attemptFirePixel()
156+
157157 verify(mockPirPixelSender).reportBrokerCustomStateOptOutSubmitRate(
158158 brokerUrl = testBroker1.url,
159159 optOutSuccessRate = 0.75 ,
@@ -169,7 +169,8 @@ class PirCustomStatsWorkerTest {
169169 whenever(mockPirRepository.getCustomStatsPixelsLastSentMs()).thenReturn(startDate)
170170 whenever(mockCurrentTimeProvider.currentTimeMillis()).thenReturn(now)
171171
172- worker.doWork()
172+ toTest.attemptFirePixel()
173+
173174 verify(mockPirRepository, never()).getAllActiveBrokerObjects()
174175 verify(mockPirPixelSender, never()).reportBrokerCustomStateOptOutSubmitRate(any(), any())
175176 }
@@ -182,7 +183,8 @@ class PirCustomStatsWorkerTest {
182183 whenever(mockPirRepository.getAllActiveBrokerObjects()).thenReturn(emptyList())
183184 whenever(mockPirRepository.getAllUserProfileQueries()).thenReturn(listOf (testProfileQuery))
184185
185- worker.doWork()
186+ toTest.attemptFirePixel()
187+
186188 verify(mockOptOutSubmitRateCalculator, never()).calculateOptOutSubmitRate(
187189 any(),
188190 any(),
@@ -200,7 +202,8 @@ class PirCustomStatsWorkerTest {
200202 whenever(mockPirRepository.getAllActiveBrokerObjects()).thenReturn(listOf (testBroker1))
201203 whenever(mockPirRepository.getAllUserProfileQueries()).thenReturn(emptyList())
202204
203- worker.doWork()
205+ toTest.attemptFirePixel()
206+
204207 verify(mockOptOutSubmitRateCalculator, never()).calculateOptOutSubmitRate(
205208 any(),
206209 any(),
@@ -239,7 +242,8 @@ class PirCustomStatsWorkerTest {
239242 )
240243 .thenReturn(0.8 )
241244
242- worker.doWork()
245+ toTest.attemptFirePixel()
246+
243247 verify(mockPirPixelSender).reportBrokerCustomStateOptOutSubmitRate(
244248 brokerUrl = testBroker1.url,
245249 optOutSuccessRate = 0.5 ,
@@ -280,7 +284,8 @@ class PirCustomStatsWorkerTest {
280284 )
281285 .thenReturn(null )
282286
283- worker.doWork()
287+ toTest.attemptFirePixel()
288+
284289 verify(mockPirPixelSender).reportBrokerCustomStateOptOutSubmitRate(
285290 brokerUrl = testBroker1.url,
286291 optOutSuccessRate = 0.5 ,
@@ -307,7 +312,8 @@ class PirCustomStatsWorkerTest {
307312 ),
308313 ).thenReturn(null )
309314
310- worker.doWork()
315+ toTest.attemptFirePixel()
316+
311317 verify(mockPirPixelSender, never()).reportBrokerCustomStateOptOutSubmitRate(any(), any())
312318 verify(mockPirRepository).setCustomStatsPixelsLastSentMs(now - twentyFourHours)
313319 }
@@ -330,7 +336,7 @@ class PirCustomStatsWorkerTest {
330336 ),
331337 ).thenReturn(0.5 )
332338
333- worker.doWork ()
339+ toTest.attemptFirePixel ()
334340
335341 verify(mockOptOutSubmitRateCalculator).calculateOptOutSubmitRate(
336342 brokerName = testBroker1.name,
@@ -369,7 +375,8 @@ class PirCustomStatsWorkerTest {
369375 )
370376 .thenReturn(0.9 )
371377
372- worker.doWork()
378+ toTest.attemptFirePixel()
379+
373380 verify(mockPirPixelSender, never()).reportBrokerCustomStateOptOutSubmitRate(
374381 brokerUrl = eq(testBroker1.url),
375382 optOutSuccessRate = any(),
@@ -389,7 +396,7 @@ class PirCustomStatsWorkerTest {
389396 whenever(mockPirRepository.getAllActiveBrokerObjects()).thenReturn(emptyList())
390397 whenever(mockPirRepository.getAllUserProfileQueries()).thenReturn(emptyList())
391398
392- worker.doWork ()
399+ toTest.attemptFirePixel ()
393400
394401 verify(mockOptOutSubmitRateCalculator, never()).calculateOptOutSubmitRate(
395402 any(),
@@ -408,7 +415,7 @@ class PirCustomStatsWorkerTest {
408415 whenever(mockPirRepository.getAllActiveBrokerObjects()).thenReturn(emptyList())
409416 whenever(mockPirRepository.getAllUserProfileQueries()).thenReturn(listOf (testProfileQuery))
410417
411- worker.doWork ()
418+ toTest.attemptFirePixel ()
412419
413420 verify(mockOptOutSubmitRateCalculator, never()).calculateOptOutSubmitRate(
414421 any(),
@@ -427,7 +434,7 @@ class PirCustomStatsWorkerTest {
427434 whenever(mockPirRepository.getAllActiveBrokerObjects()).thenReturn(listOf (testBroker1))
428435 whenever(mockPirRepository.getAllUserProfileQueries()).thenReturn(emptyList())
429436
430- worker.doWork ()
437+ toTest.attemptFirePixel ()
431438
432439 verify(mockOptOutSubmitRateCalculator, never()).calculateOptOutSubmitRate(
433440 any(),
0 commit comments