public void WithAlternatingTieBreaker_GivenASpecificAlternation_ReturnsAPipeWithThatAlternation() { // Arrange const Alternated alternation = Alternated.RightHasPriorityInitially; // Act var pipe = valvedPipeBuilder.WithAlternatingTieBreaker(alternation).Build(); // Assert pipe.TieBreaker.InitialPriority.Should().Be(Priority.Right); }
public AlternatingTwoWayTieBreaker(Alternated alternated) { switch (alternated) { case Alternated.LeftHasPriorityInitially: InitialPriority = Priority.Left; break; case Alternated.RightHasPriorityInitially: InitialPriority = Priority.Right; break; default: throw new ArgumentOutOfRangeException(nameof(alternated)); } NextPriority = InitialPriority; }
public ITieBreakingEitherOutletPipeBuilder <IAlternatingTwoWayTieBreaker, TMessage> WithAlternatingTieBreaker(Alternated alternated = Alternated.LeftHasPriorityInitially) { return(CopyInletsAndOutletsTo(new TieBreakingEitherOutletPipeBuilder <IAlternatingTwoWayTieBreaker, TMessage>(new AlternatingTwoWayTieBreaker(alternated)))); }
public ITieBreakingValvedPipeBuilder <TReceive, TSend, IAlternatingTwoWayTieBreaker> WithAlternatingTieBreaker(Alternated alternated = Alternated.LeftHasPriorityInitially) { return(CopyInletsAndOutletsTo(new TieBreakingValvedPipeBuilder <TReceive, TSend, IAlternatingTwoWayTieBreaker>(new AlternatingTwoWayTieBreaker(alternated)))); }