public void BuildUserGameResultsTestsHappyPath() { Database.SetInitializer<SelectumContext>(null); SelectumContext db = new SelectumContext(); var controller = new AdminController(); int gameFilterId = 6; int extraPointFactorPerBetOverMin = 2; var noBetPickTeam = db.Teams.First(t => t.TeamLongName == "No Bet"); List<User> users = db.Users.ToList(); var thisGameFiltersGameResults = db.GameResults .Include(gr => gr.GameSpread) .Include(gr => gr.GameSpread.FavoriteTeam) .Include(gr => gr.GameSpread.UnderdogTeam) .Include(gr => gr.GameSpread.Game) .Include(gr => gr.WinnerTeam) .Where(gr => gr.GameSpread.Game.GameFilterId == gameFilterId) .ToList(); var thisGameFiltersUsersGameSelections = db.UserGameSelections .Include(ugs => ugs.GameSpread) .Include(ugs => ugs.GameSpread.Game) .Include(ugs => ugs.User) .Include(ugs => ugs.PickTeam) .Where(ugs => ugs.GameSpread.Game.GameFilterId == gameFilterId) .ToList(); var actual = controller.BuildUserGameResults(gameFilterId, thisGameFiltersGameResults, thisGameFiltersUsersGameSelections, users, noBetPickTeam, extraPointFactorPerBetOverMin); Assert.Inconclusive("This is just a test harness"); }
public void BuildUserGameResultsTestsRebuildTable() { Database.SetInitializer<SelectumContext>(null); SelectumContext db = new SelectumContext(); db.UserGameResults.ToList().ForEach(ugr => db.UserGameResults.Remove(ugr)); db.SaveChanges(); var controller = new AdminController(); int extraPointFactorPerBetOverMin = 2; var noBetPickTeam = db.Teams.First(t => t.TeamLongName == "No Bet"); List<User> users = db.Users.ToList(); for (int i = 1; i <= 14; i++) { int gameFilterId = i; var thisGameFiltersGameResults = db.GameResults .Include(gr => gr.GameSpread) .Include(gr => gr.GameSpread.FavoriteTeam) .Include(gr => gr.GameSpread.UnderdogTeam) .Include(gr => gr.GameSpread.Game) .Include(gr => gr.WinnerTeam) .Where(gr => gr.GameSpread.Game.GameFilterId == gameFilterId) .ToList(); var thisGameFiltersUsersGameSelections = db.UserGameSelections .Include(ugs => ugs.GameSpread) .Include(ugs => ugs.GameSpread.Game) .Include(ugs => ugs.User) .Include(ugs => ugs.PickTeam) .Where(ugs => ugs.GameSpread.Game.GameFilterId == gameFilterId) .ToList(); var userGameResults = controller.BuildUserGameResults(gameFilterId, thisGameFiltersGameResults, thisGameFiltersUsersGameSelections, users, noBetPickTeam, extraPointFactorPerBetOverMin); userGameResults.ForEach(ugr => db.UserGameResults.Add(ugr)); db.SaveChanges(); } Assert.Fail("This should not be ran except for manually"); }
public void CalculateUserGameResultsTestAllFavoriteWins() { var adminController = new AdminController(); int userId = 1; int gameFilterId = 1; int extraPointFactorPerBetOverMin = 2; Team noBetPickTeam = new Team() { TeamId = 1, TeamLongName = "No Bet", TeamOtherName = "No Bet", TeamShortName = "X " }; var gameResults = new List<GameResult>() { new GameResult(){ GameSpreadId = 1, WinnerTeamId = 10, GameSpread = new GameSpread(){UnderdogTeamId = 11, Game = new Game(){GameFilterId =1}}}, new GameResult(){ GameSpreadId = 2, WinnerTeamId = 20, GameSpread = new GameSpread(){UnderdogTeamId = 21, Game = new Game(){GameFilterId =1}}}, new GameResult(){ GameSpreadId = 3, WinnerTeamId = 30, GameSpread = new GameSpread(){UnderdogTeamId = 31, Game = new Game(){GameFilterId =1}}} }; var userGameSelections = new List<UserGameSelection>() { new UserGameSelection(){ UserGameSelectionId = 1, UserId = 1, GameSpreadId = 1, PickTeamId = 10, Bet = 3, GameSpread = new GameSpread(){Game = new Game(){GameFilterId =1}}}, new UserGameSelection(){ UserGameSelectionId = 2, UserId = 1, GameSpreadId = 2, PickTeamId = 20, Bet = 2, GameSpread = new GameSpread(){Game = new Game(){GameFilterId =1}}}, new UserGameSelection(){ UserGameSelectionId = 3, UserId = 1, GameSpreadId = 3, PickTeamId = 30, Bet = 1, GameSpread = new GameSpread(){Game = new Game(){GameFilterId =1}}} }; var expected = new List<UserGameResult>() { new UserGameResult(){ UserGameSelectionId=1, BetResult=1, BetPoints=3}, new UserGameResult(){ UserGameSelectionId=2, BetResult=1, BetPoints=2}, new UserGameResult(){ UserGameSelectionId=3, BetResult=1, BetPoints=1} }; var actual = adminController.CalculateUserGameResults(userId, gameFilterId, gameResults, userGameSelections, noBetPickTeam, extraPointFactorPerBetOverMin); Assert.AreEqual(expected.Count, actual.Count); foreach (var exp in expected) { Assert.AreEqual(exp.UserGameSelectionId, actual.FirstOrDefault(a => a.UserGameSelectionId == exp.UserGameSelectionId).UserGameSelectionId); Assert.AreEqual(exp.BetPoints, actual.FirstOrDefault(a => a.UserGameSelectionId == exp.UserGameSelectionId).BetPoints); Assert.AreEqual(exp.BetResult, actual.FirstOrDefault(a => a.UserGameSelectionId == exp.UserGameSelectionId).BetResult); } }
public void CalculateUserResultsTestWrongUserIdShouldError() { var adminController = new AdminController(); int userId = 1; int gameFilterId = 1; var userGameResults = new List<UserGameResult>() { new UserGameResult(){ UserGameResultId = 1, UserGameSelectionId = 1, BetResult = 1, BetPoints = 2, UserGameSelection = new UserGameSelection(){UserId = 2, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 2, UserGameSelectionId = 2, BetResult = 0, BetPoints = 0, UserGameSelection = new UserGameSelection(){UserId = 2, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 3, UserGameSelectionId = 3, BetResult = 0, BetPoints = 0, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 4, UserGameSelectionId = 4, BetResult = -1, BetPoints = -1, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 5, UserGameSelectionId = 5, BetResult = -1, BetPoints = -1, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 6, UserGameSelectionId = 6, BetResult = 1, BetPoints = 1, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 7, UserGameSelectionId = 7, BetResult = 1, BetPoints = 3, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, }; var expected = new UserResult() { Bets = 5, GameFilterId = gameFilterId, Points = 4, UserId = userId, Wins = 3 }; try { var actual = adminController.CalculateUserResults(userId, gameFilterId, userGameResults); Assert.Fail("Should have thrown exception"); } catch (Exception ex) { Assert.IsInstanceOfType(ex, typeof(ArgumentException)); Assert.IsTrue(ex.Message.Contains("The user game result list has records for the wrong user (2) and/or game filter (0)")); } }
public void CalculateUserResultsTestHappyPath() { var adminController = new AdminController(); int userId = 1; int gameFilterId = 1; //Team noBetPickTeam = new Team() { TeamId = 1, TeamLongName = "No Bet", TeamOtherName = "No Bet", TeamShortName = "X " }; var userGameResults = new List<UserGameResult>() { new UserGameResult(){ UserGameResultId = 1, UserGameSelectionId = 1, BetResult = 1, BetPoints = 2, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 2, UserGameSelectionId = 2, BetResult = 0, BetPoints = 0, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 3, UserGameSelectionId = 3, BetResult = 0, BetPoints = 0, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 4, UserGameSelectionId = 4, BetResult = -1, BetPoints = -1, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 5, UserGameSelectionId = 5, BetResult = -1, BetPoints = -1, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 6, UserGameSelectionId = 6, BetResult = 1, BetPoints = 1, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, new UserGameResult(){ UserGameResultId = 7, UserGameSelectionId = 7, BetResult = 1, BetPoints = 3, UserGameSelection = new UserGameSelection(){UserId = userId, GameSpread = new GameSpread(){Game = new Game(){GameFilterId = gameFilterId}}}}, }; var expected = new UserResult() { Bets = 5, GameFilterId = gameFilterId, Points = 4, UserId = userId, Wins = 3 }; var actual = adminController.CalculateUserResults(userId, gameFilterId, userGameResults); Assert.AreEqual(expected.Bets, actual.Bets); Assert.AreEqual(expected.GameFilterId, actual.GameFilterId); Assert.AreEqual(expected.Points, actual.Points); Assert.AreEqual(expected.UserId, actual.UserId); Assert.AreEqual(expected.Wins, actual.Wins); }
public void CalculateUserGameResultsTestWrongUserIdShouldError() { var adminController = new AdminController(); int userId = 1; int gameFilterId = 1; int extraPointFactorPerBetOverMin = 2; Team noBetPickTeam = new Team() { TeamId = 1, TeamLongName = "No Bet", TeamOtherName = "No Bet", TeamShortName = "X " }; var gameResults = new List<GameResult>() { new GameResult(){ GameSpreadId = 1, WinnerTeamId = 10, GameSpread = new GameSpread(){UnderdogTeamId = 11, Game = new Game(){GameFilterId =1}}}, new GameResult(){ GameSpreadId = 2, WinnerTeamId = 20, GameSpread = new GameSpread(){UnderdogTeamId = 21, Game = new Game(){GameFilterId =1}}}, new GameResult(){ GameSpreadId = 3, WinnerTeamId = 30, GameSpread = new GameSpread(){UnderdogTeamId = 31, Game = new Game(){GameFilterId =1}}} }; var userGameSelections = new List<UserGameSelection>() { new UserGameSelection(){ UserGameSelectionId = 1, UserId = 1, GameSpreadId = 1, PickTeamId = 10, Bet = 3, GameSpread = new GameSpread(){Game = new Game(){GameFilterId =1}}}, new UserGameSelection(){ UserGameSelectionId = 2, UserId = 2, GameSpreadId = 2, PickTeamId = 20, Bet = 2, GameSpread = new GameSpread(){Game = new Game(){GameFilterId =1}}}, new UserGameSelection(){ UserGameSelectionId = 3, UserId = 1, GameSpreadId = 4, PickTeamId = 30, Bet = 1, GameSpread = new GameSpread(){Game = new Game(){GameFilterId =1}}} }; var expected = new List<UserGameResult>() { new UserGameResult(){ UserGameSelectionId=1, BetResult=1, BetPoints=3}, new UserGameResult(){ UserGameSelectionId=2, BetResult=1, BetPoints=2}, new UserGameResult(){ UserGameSelectionId=3, BetResult=1, BetPoints=1} }; try { var actual = adminController.CalculateUserGameResults(userId, gameFilterId, gameResults, userGameSelections, noBetPickTeam, extraPointFactorPerBetOverMin); Assert.Fail("Should have thrown an exception"); } catch (Exception ex) { Assert.IsInstanceOfType(ex, typeof(ArgumentException)); Assert.IsTrue(ex.Message.Contains("The user game selection list has records for the wrong user (1) and/or game filter (0)")); } }
public void BuildUserResultsTestsHappyPath() { Database.SetInitializer<SelectumContext>(null); SelectumContext db = new SelectumContext(); var controller = new AdminController(); int gameFilterId = 6; List<User> users = db.Users.ToList(); var thisGameFiltersUsersGameSelections = db.UserGameResults .Include(ugs => ugs.UserGameSelection) .Include(ugs => ugs.UserGameSelection.GameSpread) .Include(ugs => ugs.UserGameSelection.GameSpread.Game) .Include(ugs => ugs.UserGameSelection.User) .Include(ugs => ugs.UserGameSelection.PickTeam) .Where(ugs => ugs.UserGameSelection.GameSpread.Game.GameFilterId == gameFilterId) .ToList(); var actual = controller.BuildUserResults(gameFilterId, thisGameFiltersUsersGameSelections, users); Assert.Inconclusive("This is just a test harness"); }
public void BuildUserResultsTestsRebuildTable() { Database.SetInitializer<SelectumContext>(null); SelectumContext db = new SelectumContext(); db.UserResults.ToList().ForEach(ur => db.UserResults.Remove(ur)); db.SaveChanges(); var controller = new AdminController(); List<User> users = db.Users.ToList(); for (int i = 1; i <= 14; i++) { int gameFilterId = i; var thisGameFiltersUsersGameSelections = db.UserGameResults .Include(ugs => ugs.UserGameSelection) .Include(ugs => ugs.UserGameSelection.GameSpread) .Include(ugs => ugs.UserGameSelection.GameSpread.Game) .Include(ugs => ugs.UserGameSelection.User) .Include(ugs => ugs.UserGameSelection.PickTeam) .Where(ugs => ugs.UserGameSelection.GameSpread.Game.GameFilterId == gameFilterId) .ToList(); var userResults = controller.BuildUserResults(gameFilterId, thisGameFiltersUsersGameSelections, users); userResults.ForEach(ur => db.UserResults.Add(ur)); db.SaveChanges(); } Assert.Fail("This should not be ran except for manually"); }