public void DEBResetMatchScore_FiresEvents_ForAllDeletedGames() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i + 1); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList, 3); b.AddGame(1, 1, 0, PlayerSlot.Defender); // Targeted b.AddGame(1, 0, 1, PlayerSlot.Challenger); // Targeted b.AddGame(1, 1, 0, PlayerSlot.Defender); // Targeted Delete b.AddGame(2, 1, 0, PlayerSlot.Defender); b.AddGame(2, 1, 0, PlayerSlot.Defender); b.AddGame(3, 1, 0, PlayerSlot.Defender); // Should Delete b.AddGame(4, 1, 0, PlayerSlot.Defender); // Should Delete int expectedAffected = 5; int deletedGames = 0; b.GamesDeleted += delegate(object sender, BracketEventArgs e) { deletedGames += e.DeletedGameIDs.Count; }; b.MatchesModified += delegate(object sender, BracketEventArgs e) { deletedGames += e.DeletedGameIDs.Count; }; b.ResetMatchScore(1); Assert.AreEqual(expectedAffected, deletedGames); }
public void DEBResetMatch_Resets() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList, 3); b.AddGame(1, 1, 0, PlayerSlot.Defender); b.AddGame(1, 0, 1, PlayerSlot.Challenger); b.ResetMatchScore(1); Assert.AreEqual(0, b.GetMatch(1).Score[(int)PlayerSlot.Defender]); }
public void DEBAddGame_MovesUpperWinnerToGrandFinal() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); //b.CreateBracket(); b.AddGame(1, 1, 0, PlayerSlot.Defender); b.AddGame(2, 1, 0, PlayerSlot.Defender); b.AddGame(3, 0, 1, PlayerSlot.Challenger); Assert.AreEqual(b.GetMatch(3).Players[(int)PlayerSlot.Challenger], b.GrandFinal.Players[(int)PlayerSlot.Defender]); }
public void DEBAddGame_DropsLoserFromSecondRound() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); //b.CreateBracket(); b.AddGame(1, 1, 0, PlayerSlot.Defender); b.AddGame(2, 1, 0, PlayerSlot.Defender); b.AddGame(3, 1, 0, PlayerSlot.Defender); Assert.AreEqual(b.GetMatch(3).Players[(int)PlayerSlot.Challenger], b.GetLowerRound(2)[0].Players[(int)PlayerSlot.Defender]); }
public void DEBAddGame_MovesTeamsThroughLowerBracket() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 8; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); //b.CreateBracket(); b.AddGame(1, 1, 0, PlayerSlot.Defender); b.AddGame(2, 1, 0, PlayerSlot.Defender); b.AddGame(b.GetLowerRound(1)[0].MatchNumber, 1, 0, PlayerSlot.Defender); Assert.AreEqual(b.GetLowerRound(1)[0].Players[(int)PlayerSlot.Defender], b.GetLowerRound(2)[0].Players[(int)PlayerSlot.Challenger]); }
public void DEBRemoveLastGame_RemovesFromLowerBracket() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); b.AddGame(1, 1, 0, PlayerSlot.Defender); b.AddGame(2, 1, 0, PlayerSlot.Defender); b.SetMaxGamesForWholeLowerRound(1, 3); int mNum = b.GetLowerRound(1)[0].MatchNumber; b.AddGame(mNum, 1, 0, PlayerSlot.Defender); b.RemoveLastGame(mNum); Assert.AreEqual(0, b.GetMatch(mNum).Score[(int)PlayerSlot.Defender]); }
public void DEBResetMatch_ResetsGrandFinal() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList, 3); for (int n = 1; n <= b.NumberOfMatches; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); b.AddGame(n, 0, 1, PlayerSlot.Challenger); b.AddGame(n, 1, 0, PlayerSlot.Defender); } b.ResetMatchScore(b.GrandFinal.MatchNumber); Assert.AreEqual(0, b.GrandFinal.Score[(int)PlayerSlot.Challenger]); }
public void DEB_RPFFM_RemovesPlayerFromLowerBracket() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); b.AddGame(1, 1, 0, PlayerSlot.Defender); b.RemoveLastGame(1); Assert.IsNull(b.GetLowerRound(1)[0].Players[(int)PlayerSlot.Defender]); }
public void DEB_AddGame_MovesLoserToLowerBracket() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i + 1); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); //b.CreateBracket(); b.AddGame(2, 0, 10, PlayerSlot.Challenger); Assert.AreEqual(b.GetMatch(2).Players[(int)PlayerSlot.Defender], b.GetLowerRound(1)[0].Players[(int)PlayerSlot.Challenger]); }
public void DEBUpdateGame_DoesNotCascadeMatches_IfWinnerDoesNotChange() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 8; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); for (int n = 1; n <= b.NumberOfMatches; ++n) { b.AddGame(n, 20, 5, PlayerSlot.Defender); } b.UpdateGame(1, 1, 10, 0, PlayerSlot.Defender); Assert.IsTrue(b.GrandFinal.IsFinished); }
public void DEBUpdateGame_RecalculatesRankings() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); for (int n = 1; n < b.NumberOfMatches; ++n) { b.AddGame(n, 20, 5, PlayerSlot.Defender); } b.UpdateGame(1, 1, 0, 10, PlayerSlot.Challenger); Assert.AreEqual(0, b.Rankings.Count); }
public void DEBUpdateGame_CascadesToLowerBracket() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 8; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); for (int n = 1; n < b.NumberOfMatches; ++n) { b.AddGame(n, 20, 5, PlayerSlot.Defender); } b.UpdateGame(1, 1, 0, 10, PlayerSlot.Challenger); Assert.IsFalse(b.GetMatch(b.GetMatch(1).NextLoserMatchNumber).IsFinished); }
public void DEBAddGame_AddsGamesToGrandFinal_GamesList() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); //b.CreateBracket(); for (int n = 1; n <= b.NumberOfMatches; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); } Assert.AreEqual(1, b.GrandFinal.Games.Count); }
public void DEB_RPFFM_OnlyRemovesCorrectPlayersFromFuture() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); for (int n = 1; n < b.NumberOfMatches; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); } b.ResetMatchScore(1); Assert.IsNotNull(b.GetLowerRound(1)[0].Players[(int)PlayerSlot.Challenger]); }
public void DEBRemoveLastGame_CorrectlyRemovesPriorLoserFromRankingsList() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); for (int n = 1; n <= 4; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); } b.RemoveLastGame(4); Assert.AreEqual(0, b.Rankings.Count); }
public void DEBAddGame_UpperBracketWins_DoNotAffectRankingsList() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); //b.CreateBracket(); for (int n = 1; n <= 3; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); } Assert.AreEqual(0, b.Rankings.Count); }
public void DEBSMGFWLR_ThrowsInactiveMatch_WhenMatchIsFinished() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 8; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i + 1); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); for (int n = 1; n < b.NumberOfMatches; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); } b.SetMaxGamesForWholeLowerRound(1, 3); Assert.AreEqual(1, 2); }
public void DEB_RPFFM_ResetsFutureScores() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); for (int n = 1; n < b.NumberOfMatches; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); } b.ResetMatchScore(b.GetLowerRound(1)[0].MatchNumber); Assert.AreEqual(0, b.GetLowerRound(2)[0].Score[0]); }
public void DEBResetMatch_UpdatesALLRankings_WhenMatchWinIsReversed() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); for (int n = 1; n <= b.NumberOfMatches; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); } b.ResetMatchScore(1); Assert.AreEqual(0, b.Rankings.Count); }
public void DEBAddGame_LowerBracketWins_AddsLoserToRankingsList() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); //b.CreateBracket(); for (int n = 1; n <= 4; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); } Assert.AreEqual(b.GetMatch(4).Players[(int)PlayerSlot.Challenger].Id, b.Rankings[0].Id); }
public void DEBAddGame_GrandFinalWin_AddsWinnerToRankingsList() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); //b.CreateBracket(); for (int n = 1; n <= b.NumberOfMatches; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); } Assert.AreEqual(b.GrandFinal.Players[(int)PlayerSlot.Defender].Id, b.Rankings[0].Id); }
public void ReplacePlayer_ReplacesPlayerInAllMatches() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 8; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); for (int n = 1; n < b.NumberOfMatches; ++n) { b.AddGame(n, 1, 0, PlayerSlot.Defender); } Mock <IPlayer> m = new Mock <IPlayer>(); m.Setup(p => p.Id).Returns(9); b.ReplacePlayer(m.Object, 0); Assert.AreEqual(b.Players[0].Id, b.GrandFinal.Players[(int)PlayerSlot.Defender].Id); }
public void DEBAddGame_ThrowsMatchesModifiedEvent_IncludesLowerRoundAdvancement() { int affectedMatches = 0; List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 4; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i + 1); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); b.SetMatchWinner(1, PlayerSlot.Defender); b.SetMatchWinner(2, PlayerSlot.Defender); b.MatchesModified += delegate(object sender, BracketEventArgs e) { affectedMatches = e.UpdatedMatches.Count; }; b.AddGame(b.GetLowerRound(1)[0].MatchNumber, 3, 2, PlayerSlot.Defender); Assert.AreEqual(2, affectedMatches); }