private static async Task ExecuteStartStopManager(CoinFlipManager manager) { manager.Start(); await Task.Delay(100); await manager.Stop(); }
public async Task DraftingIsDoneClosesMatchSuccess() { var manager = new CoinFlipManager ( _fakedRepoServiceFactory, _fakedCoinFlipService, _fakedDraftingService, _coinFlipSocketSender, _dummyBetOrWithdrawQueueManager, _dummyBetHubConnection, _dummyLogServiceFactory, _dummyBetService, _dummyMongoJackpotRepoService, _dummyHotStatusManager, _dummyDiscordService ); var bets = new List <DatabaseModel.Bet> { new DatabaseModel.Bet(10, 1, 2, DateTime.Today), new DatabaseModel.Bet(9, 1, 2, DateTime.Today), }; A.CallTo(() => _fakedBetRepoService.FindAsync(1, 2)).Returns(Task.FromResult(bets)); A.CallTo(() => _fakedCoinFlipMatchRepoService.FindAllNotClosedMatches()).Returns(new List <DatabaseModel.CoinFlip> { new DatabaseModel.CoinFlip { Created = DateTime.Now, CreatorIsHead = true, CreatorUserId = 10, GameModeId = 2, Hash = "hash", Id = 1, Percentage = "5", RoundId = "", Salt = "", SettingId = 5, Status = (int)MatchStatus.Drafting, TimerStarted = DateTime.Today, WinnerId = 10 } }); await ExecuteStartStopManager(manager); A.CallTo(() => _fakedCoinFlipMatchRepoService.UpdateAsync( A <DatabaseModel.CoinFlip> .That.Matches(flip => flip.Status == (int)MatchStatus.Closed))) .MustHaveHappened(); }
public async Task TimmerRanOutForMatchDraftsWinnerSuccess() { var manager = new CoinFlipManager ( _fakedRepoServiceFactory, _fakedCoinFlipService, _fakedDraftingService, _coinFlipSocketSender, _dummyBetOrWithdrawQueueManager, _dummyBetHubConnection, _dummyLogServiceFactory, _dummyBetService, _dummyMongoJackpotRepoService, _dummyHotStatusManager, _dummyDiscordService ); var bets = new List <DatabaseModel.Bet> { new DatabaseModel.Bet(10, 1, 2, DateTime.Today), new DatabaseModel.Bet(9, 1, 2, DateTime.Today), }; var winningUser = new DatabaseModel.User("", "", "", "", DateTime.Now, DateTime.Now, false, null, 10); A.CallTo(() => _fakedBetRepoService.FindAsync(1, 2)).Returns(Task.FromResult(bets)); A.CallTo(() => _fakedCoinFlipMatchRepoService.FindAllNotClosedMatches()).Returns(new List <DatabaseModel.CoinFlip> { new DatabaseModel.CoinFlip { Created = DateTime.Now, CreatorIsHead = true, CreatorUserId = 10, GameModeId = 2, Hash = "hash", Id = 1, Percentage = "5", RoundId = "", Salt = "", SettingId = 5, Status = (int)MatchStatus.TimerCountdown, TimerStarted = DateTime.Today, WinnerId = null } }); A.CallTo(() => _fakedDraftingService.GetWinningBet(5, bets, A <List <DatabaseModel.ItemBetted> > ._)).Returns(new WinningBet { Bet = bets[0], WinningTicket = 5 }); A.CallTo(() => _fakedJackpotSettingRepo.Find(5)).Returns(new DatabaseModel.JackpotSetting { Rake = 10 }); A.CallTo(() => _fakedUserRepoService.FindAsync(10)).Returns(winningUser); await ExecuteStartStopManager(manager); A.CallTo(() => _fakedCoinFlipMatchRepoService.FindAllNotClosedMatches()).MustHaveHappened(); A.CallTo(() => _fakedBetRepoService.FindAsync(1, 2)).MustHaveHappened(); A.CallTo(() => _fakedJackpotSettingRepo.Find(5)).MustHaveHappened(); A.CallTo(() => _fakedCoinFlipMatchRepoService.UpdateAsync(A <DatabaseModel.CoinFlip> .That.Matches( m => m.Created > DateTime.Today && m.CreatorIsHead == true && m.CreatorUserId == 10 && m.GameModeId == 2 && m.Hash == "hash" && m.Id == 1 && m.Percentage == "5" && m.RoundId == "" && m.Salt == "" && m.SettingId == 5 && m.Status == (int)MatchStatus.TimerCountdown && m.TimerStarted >= DateTime.Today && m.WinnerId == null ) )).MustNotHaveHappened(); A.CallTo(() => _fakedCoinFlipMatchRepoService.UpdateAsync(A <DatabaseModel.CoinFlip> .That.Matches( m => m.Created > DateTime.Today && m.CreatorIsHead == true && m.CreatorUserId == 10 && m.GameModeId == 2 && m.Hash == "hash" && m.Id == 1 && m.Percentage == "5" && m.RoundId == "" && m.Salt == "" && m.SettingId == 5 && m.Status == (int)MatchStatus.Drafting && m.TimerStarted >= DateTime.Today && m.WinnerId == 10 ) )).MustHaveHappened(); A.CallTo(() => _fakedDraftingService.GetWinningBet(5, bets, A <List <DatabaseModel.ItemBetted> > ._)).MustHaveHappened(); A.CallTo(() => _fakedUserRepoService.FindAsync(10)).MustHaveHappened(); A.CallTo(() => _fakedDraftingService.ChangeOwnerOfItems(bets, A <List <DatabaseModel.ItemBetted> > ._, winningUser, 1, 10, 2)) .MustHaveHappened(); }
public async Task OpenMatchHasTwoBetsChangesStatusSuccess() { var manager = new CoinFlipManager ( _fakedRepoServiceFactory, _fakedCoinFlipService, _fakedDraftingService, _coinFlipSocketSender, _dummyBetOrWithdrawQueueManager, _dummyBetHubConnection, _dummyLogServiceFactory, _dummyBetService, _dummyMongoJackpotRepoService, _dummyHotStatusManager, _dummyDiscordService ); A.CallTo(() => _fakedBetRepoService.FindAsync(1, 2)).Returns(Task.FromResult(new List <DatabaseModel.Bet> { new DatabaseModel.Bet(10, 1, 2, DateTime.Today), new DatabaseModel.Bet(9, 1, 2, DateTime.Today), })); A.CallTo(() => _fakedCoinFlipMatchRepoService.FindAllNotClosedMatches()).Returns(new List <DatabaseModel.CoinFlip> { new DatabaseModel.CoinFlip { Created = DateTime.Now, CreatorIsHead = true, CreatorUserId = 10, GameModeId = 2, Hash = "hash", Id = 1, Percentage = "5", RoundId = "", Salt = "", SettingId = 5, Status = (int)MatchStatus.Open, TimerStarted = null, WinnerId = null } }); await ExecuteStartStopManager(manager); A.CallTo(() => _fakedCoinFlipMatchRepoService.FindAllNotClosedMatches()).MustHaveHappened(); A.CallTo(() => _fakedBetRepoService.FindAsync(1, 2)).MustHaveHappened(); A.CallTo(() => _fakedJackpotSettingRepo.Find(5)).MustHaveHappened(); A.CallTo(() => _fakedCoinFlipMatchRepoService.UpdateAsync(A <DatabaseModel.CoinFlip> .That.Matches( m => m.Created > DateTime.Today && m.CreatorIsHead == true && m.CreatorUserId == 10 && m.GameModeId == 2 && m.Hash == "hash" && m.Id == 1 && m.Percentage == "5" && m.RoundId == "" && m.Salt == "" && m.SettingId == 5 && m.Status == (int)MatchStatus.TimerCountdown && m.TimerStarted > DateTime.Today && m.WinnerId == null ) )).MustHaveHappened(); }