@@ -4241,8 +4241,7 @@ pub mod tests {
4241
4241
}
4242
4242
}
4243
4243
4244
- #[ tokio:: test]
4245
- async fn test_subscribe_and_get ( ) {
4244
+ async fn test_subscribe_and_get_buffer_size ( buffer_size : Option < usize > ) {
4246
4245
let broker = DataBroker :: default ( ) ;
4247
4246
let broker = broker. authorized_access ( & permissions:: ALLOW_ALL ) ;
4248
4247
@@ -4264,7 +4263,7 @@ pub mod tests {
4264
4263
let mut stream = broker
4265
4264
. subscribe (
4266
4265
HashMap :: from ( [ ( id1, HashSet :: from ( [ Field :: Datapoint ] ) ) ] ) ,
4267
- None ,
4266
+ buffer_size ,
4268
4267
)
4269
4268
. await
4270
4269
. expect ( "subscription should succeed" ) ;
@@ -4342,6 +4341,49 @@ pub mod tests {
4342
4341
}
4343
4342
}
4344
4343
4344
+ #[ tokio:: test]
4345
+ async fn test_subscribe_and_get ( ) {
4346
+ // None and 0-1000 is valid range
4347
+ test_subscribe_and_get_buffer_size ( None ) . await ;
4348
+ test_subscribe_and_get_buffer_size ( Some ( 0 ) ) . await ;
4349
+ test_subscribe_and_get_buffer_size ( Some ( 1000 ) ) . await ;
4350
+ }
4351
+
4352
+ #[ tokio:: test]
4353
+ async fn test_subscribe_buffersize_out_of_range ( ) {
4354
+ let broker = DataBroker :: default ( ) ;
4355
+ let broker = broker. authorized_access ( & permissions:: ALLOW_ALL ) ;
4356
+
4357
+ let id1 = broker
4358
+ . add_entry (
4359
+ "test.datapoint1" . to_owned ( ) ,
4360
+ DataType :: Int32 ,
4361
+ ChangeType :: OnChange ,
4362
+ EntryType :: Sensor ,
4363
+ "Test datapoint 1" . to_owned ( ) ,
4364
+ None , // min
4365
+ None , // max
4366
+ None ,
4367
+ None ,
4368
+ )
4369
+ . await
4370
+ . expect ( "Register datapoint should succeed" ) ;
4371
+
4372
+ match broker
4373
+ . subscribe (
4374
+ HashMap :: from ( [ ( id1, HashSet :: from ( [ Field :: Datapoint ] ) ) ] ) ,
4375
+ // 1001 is just outside valid range 0-1000
4376
+ Some ( 1001 ) ,
4377
+ )
4378
+ . await
4379
+ {
4380
+ Err ( SubscriptionError :: InvalidBufferSize ) => { }
4381
+ _ => {
4382
+ panic ! ( "expected it to fail with InvalidBufferSize" ) ;
4383
+ }
4384
+ }
4385
+ }
4386
+
4345
4387
#[ tokio:: test]
4346
4388
async fn test_metadata_for_each ( ) {
4347
4389
let db = DataBroker :: default ( ) ;
0 commit comments