@@ -1342,4 +1342,79 @@ public void accept(byte[] v) throws Exception {
1342
1342
+ " -> " + after .get () / 1024.0 / 1024.0 );
1343
1343
}
1344
1344
}
1345
+
1346
+ @ Test
1347
+ public void timeAndSizeNoTerminalTruncationOnTimechange () {
1348
+ ReplaySubject <Integer > rs = ReplaySubject .createWithTimeAndSize (1 , TimeUnit .SECONDS , new TimesteppingScheduler (), 1 );
1349
+
1350
+ TestObserver <Integer > to = rs .test ();
1351
+
1352
+ rs .onNext (1 );
1353
+ rs .cleanupBuffer ();
1354
+ rs .onComplete ();
1355
+
1356
+ to .assertNoErrors ()
1357
+ .assertComplete ();
1358
+ }
1359
+
1360
+ @ Test
1361
+ public void timeAndSizeNoTerminalTruncationOnTimechange2 () {
1362
+ ReplaySubject <Integer > rs = ReplaySubject .createWithTimeAndSize (1 , TimeUnit .SECONDS , new TimesteppingScheduler (), 1 );
1363
+
1364
+ TestObserver <Integer > to = rs .test ();
1365
+
1366
+ rs .onNext (1 );
1367
+ rs .cleanupBuffer ();
1368
+ rs .onNext (2 );
1369
+ rs .cleanupBuffer ();
1370
+ rs .onComplete ();
1371
+
1372
+ to .assertNoErrors ()
1373
+ .assertComplete ();
1374
+ }
1375
+
1376
+ @ Test
1377
+ public void timeAndSizeNoTerminalTruncationOnTimechange3 () {
1378
+ ReplaySubject <Integer > rs = ReplaySubject .createWithTimeAndSize (1 , TimeUnit .SECONDS , new TimesteppingScheduler (), 1 );
1379
+
1380
+ TestObserver <Integer > to = rs .test ();
1381
+
1382
+ rs .onNext (1 );
1383
+ rs .onNext (2 );
1384
+ rs .onComplete ();
1385
+
1386
+ to .assertNoErrors ()
1387
+ .assertComplete ();
1388
+ }
1389
+
1390
+ @ Test
1391
+ public void timeAndSizeNoTerminalTruncationOnTimechange4 () {
1392
+ ReplaySubject <Integer > rs = ReplaySubject .createWithTimeAndSize (1 , TimeUnit .SECONDS , new TimesteppingScheduler (), 10 );
1393
+
1394
+ TestObserver <Integer > to = rs .test ();
1395
+
1396
+ rs .onNext (1 );
1397
+ rs .onNext (2 );
1398
+ rs .onComplete ();
1399
+
1400
+ to .assertNoErrors ()
1401
+ .assertComplete ();
1402
+ }
1403
+
1404
+ @ Test
1405
+ public void timeAndSizeRemoveCorrectNumberOfOld () {
1406
+ TestScheduler scheduler = new TestScheduler ();
1407
+ ReplaySubject <Integer > rs = ReplaySubject .createWithTimeAndSize (1 , TimeUnit .SECONDS , scheduler , 2 );
1408
+
1409
+ rs .onNext (1 );
1410
+ rs .onNext (2 );
1411
+ rs .onNext (3 ); // remove 1 due to maxSize, size == 2
1412
+
1413
+ scheduler .advanceTimeBy (2 , TimeUnit .SECONDS );
1414
+
1415
+ rs .onNext (4 ); // remove 2 due to maxSize, remove 3 due to age, size == 1
1416
+ rs .onNext (5 ); // size == 2
1417
+
1418
+ rs .test ().assertValuesOnly (4 , 5 );
1419
+ }
1345
1420
}
0 commit comments