11package io.getunleash.android.http
22
33import io.getunleash.android.BaseTest
4+ import kotlinx.coroutines.runBlocking
45import org.assertj.core.api.Assertions.assertThat
56import org.junit.Test
67import java.net.MalformedURLException
@@ -10,64 +11,61 @@ class ThrottlerTest : BaseTest(){
1011 @Test
1112 @Throws(MalformedURLException ::class )
1213 fun shouldNeverDecrementFailuresOrSkipsBelowZero () {
13- val throttler =
14- Throttler (10 , 300 , " https://localhost:1500/api" );
15- throttler.decrementFailureCountAndResetSkips();
16- throttler.decrementFailureCountAndResetSkips();
17- throttler.decrementFailureCountAndResetSkips();
18- throttler.decrementFailureCountAndResetSkips();
19- throttler.decrementFailureCountAndResetSkips();
20- assertThat(throttler.getSkips()).isEqualTo(0 );
21- assertThat(throttler.getFailures()).isEqualTo(0 );
14+ val throttler = Throttler (10 , 300 , " https://localhost:1500/api" )
15+ throttler.decrementFailureCountAndResetSkips()
16+ throttler.decrementFailureCountAndResetSkips()
17+ throttler.decrementFailureCountAndResetSkips()
18+ throttler.decrementFailureCountAndResetSkips()
19+ throttler.decrementFailureCountAndResetSkips()
20+ assertThat(throttler.getSkips()).isEqualTo(0 )
21+ assertThat(throttler.getFailures()).isEqualTo(0 )
2222 }
2323
2424 @Test
2525 @Throws(MalformedURLException ::class )
2626 fun setToMaxShouldReduceDownEventually () {
27- val throttler =
28- Throttler (150 , 300 , " https://localhost:1500/api" );
29- throttler.handleHttpErrorCodes(404 );
30- assertThat(throttler.getSkips()).isEqualTo(2 );
31- assertThat(throttler.getFailures()).isEqualTo(1 );
32- throttler.skipped();
33- assertThat(throttler.getSkips()).isEqualTo(1 );
34- assertThat(throttler.getFailures()).isEqualTo(1 );
35- throttler.skipped();
36- assertThat(throttler.getSkips()).isEqualTo(0 );
37- assertThat(throttler.getFailures()).isEqualTo(1 );
38- throttler.decrementFailureCountAndResetSkips();
39- assertThat(throttler.getSkips()).isEqualTo(0 );
40- assertThat(throttler.getFailures()).isEqualTo(0 );
41- throttler.decrementFailureCountAndResetSkips();
42- assertThat(throttler.getSkips()).isEqualTo(0 );
43- assertThat(throttler.getFailures()).isEqualTo(0 );
27+ val throttler = Throttler (150 , 300 , " https://localhost:1500/api" )
28+ throttler.handleHttpErrorCodes(404 )
29+ assertThat(throttler.getSkips()).isEqualTo(2 )
30+ assertThat(throttler.getFailures()).isEqualTo(1 )
31+ runBlocking { throttler.runIfAllowed { /* skipped this interval */ } }
32+ assertThat(throttler.getSkips()).isEqualTo(1 )
33+ assertThat(throttler.getFailures()).isEqualTo(1 )
34+ runBlocking { throttler.runIfAllowed { /* skipped this interval */ } }
35+ assertThat(throttler.getSkips()).isEqualTo(0 )
36+ assertThat(throttler.getFailures()).isEqualTo(1 )
37+ throttler.decrementFailureCountAndResetSkips()
38+ assertThat(throttler.getSkips()).isEqualTo(0 )
39+ assertThat(throttler.getFailures()).isEqualTo(0 )
40+ throttler.decrementFailureCountAndResetSkips()
41+ assertThat(throttler.getSkips()).isEqualTo(0 )
42+ assertThat(throttler.getFailures()).isEqualTo(0 )
4443 }
4544
4645 @Test
4746 @Throws(MalformedURLException ::class )
4847 fun handleIntermittentFailures () {
49- val throttler =
50- Throttler (50 , 300 , " https://localhost:1500/api" );
51- throttler.handleHttpErrorCodes(429 );
52- throttler.handleHttpErrorCodes(429 );
53- throttler.handleHttpErrorCodes(503 );
54- throttler.handleHttpErrorCodes(429 );
55- assertThat(throttler.getSkips()).isEqualTo(4 );
56- assertThat(throttler.getFailures()).isEqualTo(4 );
57- throttler.decrementFailureCountAndResetSkips();
58- assertThat(throttler.getSkips()).isEqualTo(3 );
59- assertThat(throttler.getFailures()).isEqualTo(3 );
60- throttler.handleHttpErrorCodes(429 );
61- assertThat(throttler.getSkips()).isEqualTo(4 );
62- assertThat(throttler.getFailures()).isEqualTo(4 );
63- throttler.decrementFailureCountAndResetSkips();
64- throttler.decrementFailureCountAndResetSkips();
65- throttler.decrementFailureCountAndResetSkips();
66- throttler.decrementFailureCountAndResetSkips();
67- throttler.decrementFailureCountAndResetSkips();
68- throttler.decrementFailureCountAndResetSkips();
69- throttler.decrementFailureCountAndResetSkips();
70- assertThat(throttler.getSkips()).isEqualTo(0 );
71- assertThat(throttler.getFailures()).isEqualTo(0 );
48+ val throttler = Throttler (50 , 300 , " https://localhost:1500/api" )
49+ throttler.handleHttpErrorCodes(429 )
50+ throttler.handleHttpErrorCodes(429 )
51+ throttler.handleHttpErrorCodes(503 )
52+ throttler.handleHttpErrorCodes(429 )
53+ assertThat(throttler.getSkips()).isEqualTo(4 )
54+ assertThat(throttler.getFailures()).isEqualTo(4 )
55+ throttler.decrementFailureCountAndResetSkips()
56+ assertThat(throttler.getSkips()).isEqualTo(3 )
57+ assertThat(throttler.getFailures()).isEqualTo(3 )
58+ throttler.handleHttpErrorCodes(429 )
59+ assertThat(throttler.getSkips()).isEqualTo(4 )
60+ assertThat(throttler.getFailures()).isEqualTo(4 )
61+ throttler.decrementFailureCountAndResetSkips()
62+ throttler.decrementFailureCountAndResetSkips()
63+ throttler.decrementFailureCountAndResetSkips()
64+ throttler.decrementFailureCountAndResetSkips()
65+ throttler.decrementFailureCountAndResetSkips()
66+ throttler.decrementFailureCountAndResetSkips()
67+ throttler.decrementFailureCountAndResetSkips()
68+ assertThat(throttler.getSkips()).isEqualTo(0 )
69+ assertThat(throttler.getFailures()).isEqualTo(0 )
7270 }
7371}
0 commit comments