public async Task <List <Bet> > GetFinishBets(User user, int competitionId) { var betsByUser = await _betDao.FindBetsByUser(user); foreach (var bet in betsByUser) { var matchInformation = await _matchDao.FindMatch(bet.Match.Id); bet.Match = matchInformation; var awayTeamInformation = await _teamDao.FindTeam(bet.Match.AwayTeam.Id); if (awayTeamInformation != null) { bet.Match.AwayTeam = awayTeamInformation; } var homeTeamInformation = await _teamDao.FindTeam(bet.Match.HomeTeam.Id); if (homeTeamInformation != null) { bet.Match.HomeTeam = homeTeamInformation; } } var betsByCompetition = betsByUser.FindAll(bet => bet.Match.Competition.Id == competitionId); var betsByMatchStatus = betsByCompetition.FindAll(bet => bet.Match.Status == Match.FinishedStatus); return(betsByMatchStatus); }
AssertThatGetCurrentBetsAndScheduledMatchesCallsFindBetsByUseAndReturnsOnlyScheduledBetsAndMatch() { _betDao.FindBetsByUser(Arg.Any <User>()).Returns(Task.FromResult(_betsByUser)); _teamDao.FindTeam(Arg.Any <int>()).Returns(Task.FromResult(_team)); _matchDao.FindMatch(Arg.Any <int>()).Returns(Task.FromResult(_matchScheduled)); _matchDao.FindByStatus(Match.ScheduledStatus).Returns(Task.FromResult(_matchesScheduled)); var currentBetsAndMatch = await _betManager.GetCurrentBetsAndScheduledMatches(_user, 2001); await _betDao.Received().FindBetsByUser(Arg.Any <User>()); await _teamDao.Received().FindTeam(Arg.Any <int>()); await _matchDao.Received().FindMatch(Arg.Any <int>()); await _matchDao.Received().FindByStatus(Arg.Any <string>()); var bets = currentBetsAndMatch.Bets as List <Bet>; var matches = currentBetsAndMatch.Matches as List <Match>; Assert.IsNotEmpty(bets, "bets empty"); Assert.IsTrue(bets.All(b => b.Match.Status == Match.ScheduledStatus)); Assert.IsTrue(bets.All(b => b.Match.Competition.Id == 2001)); Assert.IsNotEmpty(matches, "matches empty"); Assert.IsTrue(matches.All(m => m.Status == Match.ScheduledStatus)); Assert.IsTrue(matches.All(m => m.Competition.Id == 2001)); }
public async Task AssertThatGetBestBettersReturnsLessThan50UsersAndWorkingProperly() { var listOfUsersWithId = new List <User>(); listOfUsersWithId.Add(_user1); listOfUsersWithId.Add(_user2); _userDao.OrderUserByPoint().Returns(Task.FromResult(listOfUsersWithId)); _betDao.FindBetsByUser(Arg.Any <User>()).Returns(Task.FromResult(_betsByUser)); var result = await _userManager.GetBestBetters(); await _userDao.Received().OrderUserByPoint(); await _betDao.Received().FindBetsByUser(Arg.Any <User>()); Assert.IsTrue(result.Count < 50); }
public void AssertThatFindBetsByUserIsCalled() { _betDao.FindBetsByUser(_user); _filterExpression = new ExpressionFilterDefinition <Bet>(bet => bet.User.Id == _user.Id && bet.Date >= DateTime.Today.AddDays(-7)); _collection.Received().Find(_filterExpression); }
public async Task <List <dynamic> > GetBestBetters() { var users = new List <dynamic>(); var bestUser = await _userDao.OrderUserByPoint(); foreach (var user in bestUser.Take(50)) { dynamic obj = new ExpandoObject(); var betsByUser = await _betDao.FindBetsByUser(user); obj.Id = user.Id; obj.Point = user.Point; obj.Life = user.Items.FindAll(i => i.Type == Item.Life).Count; obj.Username = user.Username; obj.IsPrivate = user.IsPrivate; obj.NbBets = betsByUser.Count; obj.NbPerfectBets = betsByUser.FindAll(b => b.Status == Bet.PerfectStatus).Count; obj.NbOkBets = betsByUser.FindAll(b => b.Status == Bet.OkStatus).Count; obj.NbWrongBets = betsByUser.FindAll(b => b.Status == Bet.WrongStatus).Count; users.Add(obj); } return(users); }