コード例 #1
0
 public void AddZeroParticipants_DoesNothing()
 {
     var barrier = new AsyncBarrier(1);
     Assert.AreEqual(1, barrier.ParticipantCount);
     barrier.AddParticipants(0);
     Assert.AreEqual(1, barrier.ParticipantCount);
 }
コード例 #2
0
 public void AddParticipants_IncreasesParticipantsForCurrentPhase()
 {
     var barrier = new AsyncBarrier(1);
     Assert.AreEqual(0, barrier.CurrentPhaseNumber);
     Assert.AreEqual(1, barrier.ParticipantCount);
     Assert.AreEqual(1, barrier.ParticipantsRemaining);
     barrier.AddParticipants(2);
     Assert.AreEqual(0, barrier.CurrentPhaseNumber);
     Assert.AreEqual(3, barrier.ParticipantCount);
     Assert.AreEqual(3, barrier.ParticipantsRemaining);
 }
コード例 #3
0
 public void AddParticipants_FromZero_IncreasesParticipantsForCurrentPhase()
 {
     AsyncContext.Run(async () =>
     {
         var barrier = new AsyncBarrier(1);
         Assert.AreEqual(0, barrier.CurrentPhaseNumber);
         Assert.AreEqual(1, barrier.ParticipantCount);
         Assert.AreEqual(1, barrier.ParticipantsRemaining);
         await barrier.RemoveParticipantsAsync();
         Assert.AreEqual(1, barrier.CurrentPhaseNumber);
         Assert.AreEqual(0, barrier.ParticipantCount);
         Assert.AreEqual(0, barrier.ParticipantsRemaining);
         barrier.AddParticipants();
         Assert.AreEqual(1, barrier.CurrentPhaseNumber);
         Assert.AreEqual(1, barrier.ParticipantCount);
         Assert.AreEqual(1, barrier.ParticipantsRemaining);
     });
 }
コード例 #4
0
 public void AddParticipants_Overflow_ThrowsException()
 {
     var barrier = new AsyncBarrier(int.MaxValue);
     AssertEx.ThrowsException<InvalidOperationException>(() => barrier.AddParticipants());
 }