示例#1
0
        private static async Task ExecuteStartStopManager(CoinFlipManager manager)
        {
            manager.Start();
            await Task.Delay(100);

            await manager.Stop();
        }
示例#2
0
        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();
        }
示例#3
0
        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();
        }
示例#4
0
        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();
        }