private void HandlePenaltiesThisSecond(IList <PlayEvent> eventsThatStartThisSecond, int second) { var penaltiesThatStartThisSecond = eventsThatStartThisSecond.Penalties(); _penaltyBox.AddPenalties(penaltiesThatStartThisSecond); var penaltiesThatExpireThisSecond = _penaltyBox.PenaltiesThatExpireThisSecond(second); _penaltyBox.ExpirePenalties(penaltiesThatExpireThisSecond.ToList()); //Logging foreach (var playEvent in penaltiesThatStartThisSecond) { Log(playEvent, second); } foreach (var playEvent in penaltiesThatExpireThisSecond) { Log(playEvent, second); } }
public void FirstInFirstOut() { _penaltyBox.AddPenalties(new[] { PenaltyCreator.CreateMajor(false), PenaltyCreator.CreateMinor(false) }); Assert.AreEqual(PlayersOnIce.FiveOnThree, _penaltyBox.PlayersOnIce); }
public void ThreeMinorsShouldPostponeLastPenalty() { _penaltyBox.AddPenalties(new[] { PenaltyCreator.CreateMinor(false), PenaltyCreator.CreateMinor(false), PenaltyCreator.CreateMinor(false) }); Assert.AreEqual(PlayersOnIce.FiveOnThree, _penaltyBox.PlayersOnIce); }
public void MinorAndMajorShouldBeFiveOnThree() { _penaltyBox.AddPenalties(new[] { PenaltyCreator.CreateMajor(false), PenaltyCreator.CreateMinor(false) }); Assert.AreEqual(PlayersOnIce.FiveOnThree, _penaltyBox.PlayersOnIce); }