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); }
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); }