public void AddZeroParticipants_DoesNothing() { var barrier = new AsyncBarrier(1); Assert.AreEqual(1, barrier.ParticipantCount); barrier.AddParticipants(0); Assert.AreEqual(1, barrier.ParticipantCount); }
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); }
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); }); }
public void AddParticipants_Overflow_ThrowsException() { var barrier = new AsyncBarrier(int.MaxValue); AssertEx.ThrowsException<InvalidOperationException>(() => barrier.AddParticipants()); }