public void TestGetAllUsers() { var generalBetsRepository = new Mock <IGeneralBetsRepository>(); var betsRepository = new Mock <IBetsRepository>(); var usersRepository = new Mock <IUsersRepository>(); List <MundialitoUser> allUsers = new List <MundialitoUser>(); allUsers.Add(new MundialitoUser() { Id = "1" }); allUsers.Add(new MundialitoUser() { Id = "2" }); usersRepository.Setup(item => item.AllUsers()).Returns(allUsers); var usersRetriver = new UsersRetriver(betsRepository.Object, generalBetsRepository.Object, usersRepository.Object, new DateTimeProvider()); var res = usersRetriver.GetAllUsers(); Assert.AreEqual(2, res.Count); }
public void TestGetAllUsersYesterdayPoints() { var dateTimeProvider = new Mock <IDateTimeProvider>(); var usersRepository = new Mock <IUsersRepository>(); var generalBetsRepository = new Mock <IGeneralBetsRepository>(); List <MundialitoUser> allUsers = new List <MundialitoUser>(); var user1 = CreateMundialtoUser("1"); var user2 = CreateMundialtoUser("2"); var user3 = CreateMundialtoUser("3"); allUsers.Add(user1); allUsers.Add(user2); allUsers.Add(user3); usersRepository.Setup(item => item.AllUsers()).Returns(allUsers); var betsRepository = new Mock <IBetsRepository>(); var clsoedGame1 = new Game() { GameId = 1, Date = (DateTime.UtcNow).Subtract(TimeSpan.FromDays(1)), HomeTeam = homeTeam, AwayTeam = awayTeam }; var clsoedGame2 = new Game() { GameId = 2, Date = (DateTime.UtcNow).Subtract(TimeSpan.FromDays(2)), HomeTeam = homeTeam, AwayTeam = awayTeam }; List <Bet> allBets = new List <Bet>(); allBets.Add(new Bet(user1, clsoedGame1) { AwayScore = 1, HomeScore = 1, Points = 5 }); allBets.Add(new Bet(user1, clsoedGame2) { AwayScore = 1, HomeScore = 1, Points = 1 }); allBets.Add(new Bet(user2, clsoedGame1) { AwayScore = 2, HomeScore = 0, Points = 1 }); allBets.Add(new Bet(user2, clsoedGame2) { AwayScore = 0, HomeScore = 1, Points = 7 }); allBets.Add(new Bet(user3, clsoedGame1) { AwayScore = 2, HomeScore = 0, Points = 2 }); allBets.Add(new Bet(user3, clsoedGame2) { AwayScore = 0, HomeScore = 1, Points = 10 }); betsRepository.Setup(item => item.GetBets()).Returns(allBets); dateTimeProvider.Setup(item => item.UTCNow).Returns(clsoedGame2.Date); var usersRetriver = new UsersRetriver(betsRepository.Object, generalBetsRepository.Object, usersRepository.Object, dateTimeProvider.Object); var res = usersRetriver.GetAllUsers(); Assert.AreEqual(0, res.Sum(user => user.YesterdayPoints)); dateTimeProvider = new Mock <IDateTimeProvider>(); dateTimeProvider.Setup(item => item.UTCNow).Returns(DateTime.UtcNow.Subtract(TimeSpan.FromHours(1))); usersRetriver = new UsersRetriver(betsRepository.Object, generalBetsRepository.Object, usersRepository.Object, dateTimeProvider.Object); res = usersRetriver.GetAllUsers(); Assert.AreEqual(18, res.Sum(user => user.YesterdayPoints)); dateTimeProvider = new Mock <IDateTimeProvider>(); dateTimeProvider.Setup(item => item.UTCNow).Returns(DateTime.UtcNow.AddDays(1)); usersRetriver = new UsersRetriver(betsRepository.Object, generalBetsRepository.Object, usersRepository.Object, dateTimeProvider.Object); res = usersRetriver.GetAllUsers(); Assert.AreEqual(26, res.Sum(user => user.YesterdayPoints)); }
public void TestGetAllUsersWithOpenBets() { var usersRepository = new Mock <IUsersRepository>(); List <MundialitoUser> allUsers = new List <MundialitoUser>(); var user1 = CreateMundialtoUser("1"); var user2 = CreateMundialtoUser("2"); var user3 = CreateMundialtoUser("3"); allUsers.Add(user1); allUsers.Add(user2); allUsers.Add(user3); usersRepository.Setup(item => item.AllUsers()).Returns(allUsers); var betsRepository = new Mock <IBetsRepository>(); var openGame = CreateOpenGame(1); var clsoedGame = CreateClosedGame(2); List <Bet> allBets = new List <Bet>(); allBets.Add(new Bet(user1, openGame) { AwayScore = 1, HomeScore = 1 }); allBets.Add(new Bet(user1, clsoedGame) { AwayScore = 1, HomeScore = 1, Points = 5, ResultWin = true }); allBets.Add(new Bet(user2, openGame) { AwayScore = 2, HomeScore = 0 }); allBets.Add(new Bet(user2, clsoedGame) { AwayScore = 0, HomeScore = 1 }); allBets.Add(new Bet(user3, openGame) { AwayScore = 2, HomeScore = 0 }); allBets.Add(new Bet(user3, clsoedGame) { AwayScore = 0, HomeScore = 1 }); betsRepository.Setup(item => item.GetBets()).Returns(allBets); var generalBetsRepository = new Mock <IGeneralBetsRepository>(); List <GeneralBet> generalBets = new List <GeneralBet>(); generalBets.Add(new GeneralBet() { User = user1, IsResolved = true, PlayerPoints = 12, TeamPoints = 0, WinningTeamId = 1 }); generalBets.Add(new GeneralBet() { User = user2, IsResolved = false, WinningTeamId = 1 }); generalBets.Add(new GeneralBet() { User = user3, IsResolved = true, PlayerPoints = 12, TeamPoints = 12, WinningTeamId = 2 }); generalBetsRepository.Setup(rep => rep.GetGeneralBets()).Returns(generalBets); var usersRetriver = new UsersRetriver(betsRepository.Object, generalBetsRepository.Object, usersRepository.Object, new DateTimeProvider()); var res = usersRetriver.GetAllUsers(); Assert.AreEqual(3, res.Count); Assert.AreEqual(17, res[0].Points); Assert.AreEqual(1, res[0].Results); Assert.AreEqual(0, res[1].Points); Assert.AreEqual(24, res[2].Points); }