@@ -658,19 +658,16 @@ class MethodBuilderTest
658
658
659
659
val stackClient = TestStackClient (stack, params)
660
660
val initialMethodBuilder = MethodBuilder .from(" with backups" , stackClient)
661
- assert(initialMethodBuilder.config.backup == None )
662
-
663
661
val methodBuilder =
664
- initialMethodBuilder.withConfig(
665
- initialMethodBuilder.config.copy(backup = Some (configuredBrfParam)))
662
+ initialMethodBuilder.withConfig(initialMethodBuilder.config.copy(backup = configuredBrfParam))
666
663
667
664
// Ensure BRF is configured before calling `nonIdempotent`
668
- assert(methodBuilder.config.backup == Some ( configuredBrfParam) )
665
+ assert(methodBuilder.config.backup == configuredBrfParam)
669
666
670
667
val nonIdempotentClient = methodBuilder.nonIdempotent
671
668
672
669
// Ensure BRF is disabled after calling `nonIdempotent`
673
- assert(nonIdempotentClient.config.backup == Some ( BackupRequestFilter .Disabled ) )
670
+ assert(nonIdempotentClient.config.backup == BackupRequestFilter .Disabled )
674
671
}
675
672
676
673
test(" nonIdempotent client keeps existing ResponseClassifier in params " ) {
@@ -799,9 +796,8 @@ class MethodBuilderTest
799
796
.idempotent(1 .percent, sendInterrupts = true , classifier)
800
797
801
798
mb.config.backup match {
802
- case Some (
803
- BackupRequestFilter .Param
804
- .Configured (maxExtraLoadTunable, sendInterrupts, minSendBackupAfterMs)) =>
799
+ case BackupRequestFilter .Param
800
+ .Configured (maxExtraLoadTunable, sendInterrupts, minSendBackupAfterMs) =>
805
801
assert(
806
802
maxExtraLoadTunable().get == 1 .percent && sendInterrupts && minSendBackupAfterMs == 1 )
807
803
case _ => fail(" BackupRequestFilter not configured" )
@@ -866,9 +862,8 @@ class MethodBuilderTest
866
862
.idempotent(tunable, sendInterrupts = true , ResponseClassifier .Default )
867
863
868
864
assert(
869
- mb.config.backup == Some (
870
- BackupRequestFilter
871
- .Configured (tunable, sendInterrupts = true ))
865
+ mb.config.backup == BackupRequestFilter
866
+ .Configured (tunable, sendInterrupts = true )
872
867
)
873
868
}
874
869
@@ -885,13 +880,12 @@ class MethodBuilderTest
885
880
.idempotent(tunable, sendInterrupts = true , ResponseClassifier .Default )
886
881
887
882
assert(
888
- mb.config.backup == Some (
889
- BackupRequestFilter
890
- .Configured (tunable, sendInterrupts = true ))
883
+ mb.config.backup == BackupRequestFilter
884
+ .Configured (tunable, sendInterrupts = true )
891
885
)
892
886
893
887
val nonIdempotentMB = mb.nonIdempotent
894
- assert(nonIdempotentMB.config.backup == Some ( BackupRequestFilter .Disabled ) )
888
+ assert(nonIdempotentMB.config.backup == BackupRequestFilter .Disabled )
895
889
}
896
890
897
891
test(" idempotent combines existing classifier with new one" ) {
@@ -1128,100 +1122,6 @@ class MethodBuilderTest
1128
1122
assert(client.params[Retries .Budget ].retryBudget eq retryBudget)
1129
1123
}
1130
1124
1131
- test(
1132
- " BackupRequestFilter is configured with passed-in stack params when not configured in MethodBuilder" ) {
1133
- val stats = new InMemoryStatsReceiver ()
1134
- val timer = new MockTimer ()
1135
- val params =
1136
- Stack .Params .empty +
1137
- param.Stats (stats) +
1138
- param.Timer (timer) +
1139
- BackupRequestFilter .Configured (maxExtraLoad = 0.01 , sendInterrupts = true )
1140
-
1141
- val svc : Service [Int , Int ] = Service .mk { i =>
1142
- Future .value(i)
1143
- }
1144
-
1145
- val stack = Stack .leaf(Stack .Role (" test" ), ServiceFactory .const(svc))
1146
-
1147
- val stackClient = TestStackClient (stack, Stack .Params .empty).withParams(params)
1148
- val mb = MethodBuilder .from(" mb" , stackClient)
1149
-
1150
- Time .withCurrentTimeFrozen { tc =>
1151
- val client = mb.newService(" a_client" )
1152
- awaitResult(client(1 ))
1153
-
1154
- tc.advance(10 .seconds)
1155
- timer.tick()
1156
- assert(stats.stats.contains(Seq (" mb" , " a_client" , " backups" , " send_backup_after_ms" )))
1157
- }
1158
- }
1159
-
1160
- test(
1161
- " BackupRequestFilter is configured with MethodBuilder idempotent configuration when also configured via stack params" ) {
1162
- val stats = new InMemoryStatsReceiver ()
1163
- val timer = new MockTimer ()
1164
- val params =
1165
- Stack .Params .empty +
1166
- param.Stats (stats) +
1167
- param.Timer (timer) +
1168
- BackupRequestFilter .Disabled
1169
-
1170
- val svc : Service [Int , Int ] = Service .mk { i =>
1171
- Future .value(i)
1172
- }
1173
-
1174
- val stack = Stack .leaf(Stack .Role (" test" ), ServiceFactory .const(svc))
1175
-
1176
- val stackClient = TestStackClient (stack, Stack .Params .empty).withParams(params)
1177
- val classifier : ResponseClassifier = ResponseClassifier .named(" foo" ) {
1178
- case ReqRep (_, Throw (_ : IndividualRequestTimeoutException )) =>
1179
- ResponseClass .RetryableFailure
1180
- }
1181
-
1182
- // MB config should take precedence
1183
- val mb = MethodBuilder .from(" mb" , stackClient).idempotent(0.05 , true , classifier)
1184
-
1185
- Time .withCurrentTimeFrozen { tc =>
1186
- val client = mb.newService(" a_client" )
1187
- awaitResult(client(1 ))
1188
-
1189
- tc.advance(10 .seconds)
1190
- timer.tick()
1191
- assert(stats.stats.contains(Seq (" mb" , " a_client" , " backups" , " send_backup_after_ms" )))
1192
- }
1193
- }
1194
-
1195
- test(
1196
- " BackupRequestFilter is configured with MethodBuilder nonIdempotent configuration when also configured via stack params" ) {
1197
- val stats = new InMemoryStatsReceiver ()
1198
- val timer = new MockTimer ()
1199
- val params =
1200
- Stack .Params .empty +
1201
- param.Stats (stats) +
1202
- param.Timer (timer) +
1203
- BackupRequestFilter .Configured (maxExtraLoad = 0.01 , sendInterrupts = true )
1204
-
1205
- val svc : Service [Int , Int ] = Service .mk { i =>
1206
- Future .value(i)
1207
- }
1208
-
1209
- val stack = Stack .leaf(Stack .Role (" test" ), ServiceFactory .const(svc))
1210
-
1211
- val stackClient = TestStackClient (stack, Stack .Params .empty).withParams(params)
1212
- // MB config should take precedence
1213
- val mb = MethodBuilder .from(" mb" , stackClient).nonIdempotent
1214
-
1215
- Time .withCurrentTimeFrozen { tc =>
1216
- val client = mb.newService(" a_client" )
1217
- awaitResult(client(1 ))
1218
-
1219
- tc.advance(10 .seconds)
1220
- timer.tick()
1221
- assert(! stats.stats.contains(Seq (" mb" , " a_client" , " backups" , " send_backup_after_ms" )))
1222
- }
1223
- }
1224
-
1225
1125
test(" shares RetryBudget between methods" ) {
1226
1126
val params = StackClient .defaultParams
1227
1127
0 commit comments