public void DEBResetMatches_FiresMatchesModifiedEvent_WithAllAffectedMatches() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 17; ++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.SetMatchWinner(n, PlayerSlot.Defender); } int matchesAffected = -1; b.MatchesModified += delegate(object sender, BracketEventArgs e) { matchesAffected = e.UpdatedMatches .Select(mm => mm.MatchNumber).Distinct().ToList().Count; }; b.ResetMatches(); Assert.AreEqual(b.NumberOfMatches, matchesAffected); }
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 DEBResetMatchScore_ThrowsMatchesModifiedEvent_WithAllAffectedMatches() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 5; ++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.SetMatchWinner(n, PlayerSlot.Challenger); } int expectedAffected = 6; int affectedMatches = 0; b.MatchesModified += delegate(object sender, BracketEventArgs e) { affectedMatches = e.UpdatedMatches.Count; }; b.ResetMatchScore(1); Assert.AreEqual(expectedAffected, affectedMatches); }
public void DEBCtor_CallsSEBCtor() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 2; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); Assert.AreEqual(2, b.Players.Count); }
public void DEBCtor_Constructs() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 2; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); Assert.IsInstanceOfType(b, typeof(DoubleElimBracket)); }
public void DEBRemoveLastGame_ThrowsInvalidIndex_WithBadMatchNumberInput() { 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.RemoveLastGame(-1); Assert.AreEqual(1, 2); }
public void DEBSMGFWLR_ThrowsScoreException_WithNegativeInput() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 16; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); b.SetMaxGamesForWholeLowerRound(1, -1); Assert.AreEqual(1, 2); }
public void DEB_CreateBracket_CreatesLowerBracket() { 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(2); Assert.AreEqual(4, b.NumberOfLowerRounds); }
public void DEBResetScore_ThrowsNotFound_WithBadMatchNumberInput() { 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.ResetMatchScore(b.NumberOfMatches + 1); Assert.AreEqual(1, 2); }
public void DEBCreateBracket_AssignsMatchNumberToGrandFinal() { 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(); Assert.AreEqual(b.NumberOfMatches, b.GrandFinal.MatchNumber); }
public void DEB_CreateBracket_MakesGrandFinalMatch() { 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(); Assert.IsInstanceOfType(b.GrandFinal, typeof(IMatch)); }
public void DEB_CreateBracket_DoesNotAdvanceLosersFromPlayinRound() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 15; ++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(2); Assert.AreEqual(-1, b.GetMatch(1).NextLoserMatchNumber); }
public void DEBGetLowerRound_ReturnsCorrectly() { 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(); Assert.AreEqual(2, b.GetLowerRound(1).Count); }
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 DEBSMGFWLR_DoesNotUpdateUpperBracketRound() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 16; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); int round = 2; b.SetMaxGamesForWholeLowerRound(round, 5); Assert.AreEqual(1, b.GetRound(round)[0].MaxGames); }
public void DEBCreateBracket_AssignsMatchNumbersToLowerBracket() { 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(); Assert.AreEqual(b.GetRound(b.NumberOfRounds)[0].MatchNumber + 1, b.GetLowerRound(1)[0].MatchNumber); }
public void DEBCreateBracket_GeneratesFor20Players() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 20; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i + 3); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); var v = b.GetRound(2); List <IMatch> roundOne = b.GetRound(1); Assert.AreEqual(4, roundOne.Count); }
public void DEBGetLowerRound_ThrowsIndexException_WithNegativeInput() { 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.GetLowerRound(-1); Assert.AreEqual(1, 2); }
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 DEBSMGFWR_UpdatesCorrectUpperBracketRound() { List <IPlayer> pList = new List <IPlayer>(); for (int i = 0; i < 16; ++i) { Mock <IPlayer> moq = new Mock <IPlayer>(); moq.Setup(p => p.Id).Returns(i); pList.Add(moq.Object); } IBracket b = new DoubleElimBracket(pList); int games = 5; int round = 2; b.SetMaxGamesForWholeRound(round, games); Assert.AreEqual(games, b.GetRound(round)[1].MaxGames); }
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 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 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 DEBRemoveLastGame_RemovesFromGrandFinal() { 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.RemoveLastGame(b.GrandFinal.MatchNumber); Assert.AreEqual(0, b.GrandFinal.Score[(int)PlayerSlot.Defender]); }
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 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 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); }