示例#1
0
 public void AddVisitor(ICellVisitor visitor)
 {
     VisitCell   += visitor.VisitCellHandler;
     VisitWall   += visitor.VisitWallHandler;
     PostProcess += visitor.PostProcessHandler;
     PreProcess  += visitor.PreProcessHandler;
 }
示例#2
0
 public void HealthyCellConstructorSetsDefaultParameters(
     ICellVisitor visitor,
     HealthyCell sut)
 {
     sut.Accept(visitor);
     VerifyHealhyCellWithDefault(visitor);
 }
示例#3
0
 private static void VerifyHealhyCellWithDefault(ICellVisitor visitor)
 {
     Mock.Get(visitor)
     .Verify(v => v.VisitCell(It.Is <bool>(alive => alive),
                              It.Is <ushort>(selfSig => selfSig == ushort.MaxValue),
                              It.Is <ushort>(alertSig => alertSig == ushort.MinValue)),
             Times.Once);
 }
示例#4
0
 private static void VerifyCellIsAlive(ICellVisitor visitor, bool isAlive)
 {
     Mock.Get(visitor)
     .Verify(v => v.VisitCell(
                 It.Is <bool>(alive => alive == isAlive),
                 It.IsAny <ushort>(),
                 It.IsAny <ushort>()),
             Times.Once);
     Mock.Get(visitor).Reset();
 }
示例#5
0
 internal void InfectedCellIsConstructedWithCorrectAttributes(
     [Frozen] IGerm germ,
     [Frozen] ushort signals,
     [Frozen] bool isAlive,
     ICellVisitor visitor,
     InfectedCell sut)
 {
     sut.Accept(visitor);
     VerifyCellExposesCorrectParametersToVisitor(signals, isAlive, visitor);
 }
示例#6
0
        internal void CloningALivingCellDoesReplicatesTheGermAndReturnsInfectedCell(
            [Frozen] IGerm germ,
            [Frozen] ushort signals,
            [Frozen] ICellVisitor visitor,
            LivingInfectedCell sut)
        {
            var result = sut.Clone();

            result.Should().BeOfType <InfectedCell>();
            VerifyTimesGermReplicatIsCalled(1, germ);
            VerifySignalsAreCloned(sut, result, signals, visitor);
        }
示例#7
0
        public void HealthyCellCloneCreatesNewCellWithSameParametersAsParentCell(
            ICellVisitor visitsParent,
            ICellVisitor visitsClone,
            HealthyCell sut)
        {
            sut.Accept(visitsParent);
            var newCell = sut.Clone();

            newCell.Accept(visitsClone);

            newCell.Should().NotBeSameAs(sut);
            VerifyHealhyCellWithDefault(visitsParent);
            VerifyHealhyCellWithDefault(visitsClone);
        }
示例#8
0
        internal void MatureLyticGermKillsCellWhileCloning(
            [Frozen(Matching.ImplementedInterfaces)] MatureLyticGerm lyticGerm,
            [Frozen] ICellVisitor visitor,
            LivingInfectedCell sut)
        {
            bool isAlive    = true;
            bool isNotAlive = false;

            sut.Accept(visitor);

            VerifyCellIsAlive(visitor, isAlive);

            var result = sut.Clone();

            result.Accept(visitor);
            result.Should().BeOfType <InfectedCell>();
            VerifyCellIsAlive(visitor, isNotAlive);
        }
示例#9
0
 private void VerifySignalsAreCloned(LivingInfectedCell sut, ICell result, ushort signals, ICellVisitor visitor)
 {
     sut.Accept(visitor);
     result.Accept(visitor);
     Mock.Get(visitor)
     .Verify(v => v.VisitCell(
                 It.IsAny <bool>(),
                 It.Is <ushort>(self => self == signals),
                 It.Is <ushort>(alert => alert == signals)),
             Times.Exactly(2));
 }
示例#10
0
 public void Accept(ICellVisitor cellVisitor)
 => _cell.Accept(cellVisitor);
示例#11
0
 private static void VerifyCellExposesCorrectParametersToVisitor(ushort signals, bool isAlive, ICellVisitor visitor)
 {
     Mock.Get(visitor)
     .Verify(v => v.VisitCell(
                 It.Is <bool>(alive => alive == isAlive),
                 It.Is <ushort>(self => self == signals),
                 It.Is <ushort>(alert => alert == signals)),
             Times.Once);
 }
示例#12
0
 public void add(ICellVisitor visitor)
 {
     all_visitors.Add(visitor);
 }
示例#13
0
 public void Accept(ICellVisitor cellVisitor)
 {
     cellVisitor.VisitCell(false, 0, 0);
 }
示例#14
0
 public void Accept(ICellVisitor cellVisitor)
 {
     cellVisitor?.VisitCell(_isAlive, _selfSignal, _alertSignal);
 }
示例#15
0
 public ConstrainedCellVisitor(ICellVisitor cell_visitor, Specification<ICell> constraint)
 {
     this.cell_visitor = cell_visitor;
     this.constraint = constraint;
 }
示例#16
0
 public T AcceptVisitor <T>(ICellVisitor <T> visitor)
 {
     return(visitor.Visit(this));
 }
示例#17
0
 public void Accept(ICellVisitor cellVisitor)
 {
     cellVisitor.Visit(this);
 }