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 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;
        }
Exemple #4
0
 public ITieBreakingEitherOutletPipeBuilder <IAlternatingTwoWayTieBreaker, TMessage> WithAlternatingTieBreaker(Alternated alternated = Alternated.LeftHasPriorityInitially)
 {
     return(CopyInletsAndOutletsTo(new TieBreakingEitherOutletPipeBuilder <IAlternatingTwoWayTieBreaker, TMessage>(new AlternatingTwoWayTieBreaker(alternated))));
 }
Exemple #5
0
 public ITieBreakingValvedPipeBuilder <TReceive, TSend, IAlternatingTwoWayTieBreaker> WithAlternatingTieBreaker(Alternated alternated = Alternated.LeftHasPriorityInitially)
 {
     return(CopyInletsAndOutletsTo(new TieBreakingValvedPipeBuilder <TReceive, TSend, IAlternatingTwoWayTieBreaker>(new AlternatingTwoWayTieBreaker(alternated))));
 }