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));
        }
Exemple #3
0
        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);
        }