@@ -579,14 +579,16 @@ public void canceledWaitingTest() {
579579 @ Test
580580 public void checkWaitingAfterDeleteTest () {
581581 ResourceHandler rs = new ResourceHandler ();
582- WaitingQueue <Resource > queue = new WaitingQueue <>(rs , 1 , 3 );
582+ WaitingQueue <Resource > queue = new WaitingQueue <>(rs , 1 , 5 );
583583
584584 CompletableFuture <Resource > f1 = pendingFuture (acquire (queue ));
585585 CompletableFuture <Resource > w1 = pendingFuture (acquire (queue ));
586586 CompletableFuture <Resource > w2 = pendingFuture (acquire (queue ));
587587 CompletableFuture <Resource > w3 = pendingFuture (acquire (queue ));
588+ CompletableFuture <Resource > w4 = pendingFuture (acquire (queue ));
589+ CompletableFuture <Resource > w5 = pendingFuture (acquire (queue ));
588590
589- check (queue ).queueSize (1 ).idleSize (0 ).waitingsCount (3 );
591+ check (queue ).queueSize (1 ).idleSize (0 ).waitingsCount (5 );
590592 rs .completeNext ();
591593 check (rs ).requestsCount (0 ).activeCount (1 );
592594
@@ -596,41 +598,46 @@ public void checkWaitingAfterDeleteTest() {
596598 queue .delete (r1 );
597599
598600 check (rs ).requestsCount (1 ).activeCount (0 );
599- check (queue ).queueSize (1 ).idleSize (0 ).waitingsCount (3 );
601+ check (queue ).queueSize (1 ).idleSize (0 ).waitingsCount (4 );
600602 futureIsPending (w1 );
601603 futureIsPending (w2 );
602604 futureIsPending (w3 );
605+ futureIsPending (w4 );
603606
604607 rs .completeNext ();
605608 check (rs ).requestsCount (0 ).activeCount (1 );
606- check (queue ).queueSize (1 ).idleSize (0 ).waitingsCount (2 );
609+ check (queue ).queueSize (1 ).idleSize (0 ).waitingsCount (4 );
607610
608611 Resource r2 = pendingIsReady (w1 );
609612 futureIsPending (w2 );
613+ futureIsPending (w3 );
614+ w3 .cancel (true );
610615
611616 Assert .assertNotEquals ("After deleting waiting got different resource " , r1 , r2 );
612617
613618 queue .delete (r2 );
614619 check (rs ).requestsCount (1 ).activeCount (0 );
615620
616- // If pending completed with exception - queue must repeat it
621+ // If pending completed with exception - next waiting got that trouble
617622 rs .completeNextWithException (new RuntimeException ("Trouble" ));
623+ futureIsExceptionally (w2 , "Trouble" );
624+
618625 check (rs ).requestsCount (1 ).activeCount (0 );
619626
620627 rs .completeNext ();
621628
622- Resource r3 = pendingIsReady (w2 );
623- futureIsPending (w3 );
629+ Resource r4 = pendingIsReady (w4 );
630+ futureIsPending (w5 );
624631
625- Assert .assertNotEquals ("After deleting waiting got different resource " , r2 , r3 );
632+ Assert .assertNotEquals ("After deleting waiting got different resource " , r2 , r4 );
626633 check (rs ).requestsCount (0 ).activeCount (1 );
627634 check (queue ).queueSize (1 ).idleSize (0 ).waitingsCount (1 );
628635
629- queue .delete (r3 );
636+ queue .delete (r4 );
630637
631638 // After canceling of pending waiting queue will move resource to idle
632639 check (rs ).requestsCount (1 ).activeCount (0 );
633- w3 .cancel (true );
640+ w5 .cancel (true );
634641 rs .completeNext ();
635642
636643 check (rs ).requestsCount (0 ).activeCount (1 );
@@ -660,14 +667,17 @@ public void cleanWaitingAfterClosingTest() {
660667 queue .release (r1 );
661668 }
662669
663- @ Test (expected = IllegalArgumentException .class )
664- public void validateQueueMaxSize () {
665- new WaitingQueue <>(new ResourceHandler (), 0 , 3 );
666- }
667-
668- @ Test (expected = IllegalArgumentException .class )
669- public void validateQueueHandler () {
670- new WaitingQueue <>(null , 1 );
670+ @ Test
671+ public void validateQueueArguments () {
672+ IllegalArgumentException ex1 = Assert .assertThrows ("Invalid max size expected" , IllegalArgumentException .class ,
673+ () -> new WaitingQueue <>(new ResourceHandler (), 0 , 3 )
674+ );
675+ Assert .assertEquals ("WaitingQueue max size (0) must be positive" , ex1 .getMessage ());
676+
677+ IllegalArgumentException ex2 = Assert .assertThrows ("Invalid handler expected" , IllegalArgumentException .class ,
678+ () -> new WaitingQueue <>(null , 1 , 3 )
679+ );
680+ Assert .assertEquals ("WaitingQueue handler must be not null" , ex2 .getMessage ());
671681 }
672682
673683 @ Test
0 commit comments