Ejemplo n.º 1
0
        public async Task MatchHasOneBetDoesNotingSuccess()
        {
            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)
            }));


            A.CallTo(() => _fakedCoinFlipMatchRepoService.FindAllNotClosedMatches()).Returns(new List <DatabaseModel.CoinFlip>
            {
                new DatabaseModel.CoinFlip
                {
                    Created       = DateTime.Today,
                    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> ._)).MustNotHaveHappened();
        }
Ejemplo n.º 2
0
        public async Task <List <Item> > GetAvalibleItemsForUser(DatabaseModel.User user)
        {
            var jackpotGameModeTask  = _gameModeRepoService.Find(GameModeHelper.GetStringFromType(GameModeType.JackpotCsgo));
            var coinFlipGameModeTask = _gameModeRepoService.Find(GameModeHelper.GetStringFromType(GameModeType.CoinFlip));

            var currentMatchTask             = _matchRepoService.GetCurrentMatch();
            var notClosedCoinFlipmatchesTask = _coinFlipMatchRepoService.FindAllNotClosedMatches();

            await Task.WhenAll(jackpotGameModeTask, coinFlipGameModeTask, currentMatchTask, notClosedCoinFlipmatchesTask);

            var coinFlipGameMode         = coinFlipGameModeTask.Result;
            var currentMatch             = currentMatchTask.Result;
            var jackpotGameMode          = jackpotGameModeTask.Result;
            var notClosedCoinFlipmatches = notClosedCoinFlipmatchesTask.Result;

            var coinflipLookUpGameModeBet = new LookUpGameModeBet
            {
                GameMode = coinFlipGameMode,
                User     = user,
                MatchIds = notClosedCoinFlipmatches.Select(coin => coin.Id).ToList()
            };

            var jackpotLookUpGameModeBet = new LookUpGameModeBet
            {
                GameMode = jackpotGameMode,
                User     = user,
                MatchIds = new List <int> {
                    currentMatch.Id
                }
            };

            var userBets = await _betRepoService.FindAsync(new List <LookUpGameModeBet>
            {
                coinflipLookUpGameModeBet,
                jackpotLookUpGameModeBet
            });

            var offers = await _offerTransactionRepoService.FindActiveAsync(user);


            var itemThatUserOwns = await GetItemsThatUsersOwns(user);

            if (userBets.Count == 0 && offers.Count == 0)
            {
                return(itemThatUserOwns);
            }


            if (userBets.Count > 0 && offers.Count == 0)
            {
                return(await GetNoneBetedItems(userBets, itemThatUserOwns));
            }


            if (userBets.Count == 0 && offers.Count > 0)
            {
                return(await GetItemsThatIsNotInAOffer(offers, itemThatUserOwns));
            }


            var itemNotInOffer = await GetItemsThatIsNotInAOffer(offers, itemThatUserOwns);

            var itemNotInBetAndNotInOffer = await GetNoneBetedItems(userBets, itemNotInOffer);

            return(itemNotInBetAndNotInOffer);
        }
Ejemplo n.º 3
0
 public Task <List <DatabaseModel.Bet> > GetBetsFromUser(DatabaseModel.User user)
 {
     return(_betRepoService.FindAsync(user));
 }
Ejemplo n.º 4
0
        public async void TestForBetsJackpotAndOnCoinFlip()
        {
            var user = new DatabaseModel.User("steamId", "name", "imageUrl", "tradelink", DateTime.Now, DateTime.Now, false, null, 9);

            A.CallTo(() => _itemRepoService.FindAsync(A <DatabaseModel.User> ._)).Returns(new List <DatabaseModel.Item>
            {
                new DatabaseModel.Item("assetId1", 1, -1, 9, DateTimeOffset.Now, 10),
                new DatabaseModel.Item("assetId2", 1, -1, 9, DateTimeOffset.Now, 11),
                new DatabaseModel.Item("assetId3", 2, -1, 9, DateTimeOffset.Now, 12),
                new DatabaseModel.Item("assetId4", 3, -1, 9, DateTimeOffset.Now, 13),
                new DatabaseModel.Item("assetId5", 3, -1, 9, DateTimeOffset.Now, 13),
                new DatabaseModel.Item("assetId6", 3, -1, 9, DateTimeOffset.Now, 13),
            });
            A.CallTo(() => _descriptionRepoService.FindAsync(A <List <int> > ._)).Returns(new List <DatabaseModel.ItemDescription>
            {
                new DatabaseModel.ItemDescription("itemDesc1", 1, "730", "2", "img1", true, 1),
                new DatabaseModel.ItemDescription("itemDesc2", 1, "730", "2", "img1", true, 2),
                new DatabaseModel.ItemDescription("itemDesc3", 1, "730", "2", "img1", true, 3)
            });

            var match = new DatabaseModel.Match(1, "salt", "hash", 14.4.ToString(CultureInfo.InvariantCulture), 1, null, null, 1, 1, DateTime.Now, 1);
            var bets  = new List <DatabaseModel.Bet>
            {
                new DatabaseModel.Bet(10, 1, 1, DateTime.Now, 11),
                new DatabaseModel.Bet(9, 1, 2, DateTime.Now, 11)
            };

            A.CallTo(() => _itemBettedRepoSerivce.FindAsync(A <List <DatabaseModel.Bet> > ._)).Returns(new List <DatabaseModel.ItemBetted>
            {
                new DatabaseModel.ItemBetted(bets[0].Id, 1, "assetId1", 1),
                new DatabaseModel.ItemBetted(bets[0].Id, 3, "assetId4", 1),
            });

            A.CallTo(() => _matchRepoService.GetCurrentMatch()).Returns(match);
            A.CallTo(() => _betRepoService.FindAsync(A <List <LookUpGameModeBet> > ._)).Returns(bets);
            A.CallTo(() => _fakedCoinFlipService.FindAllNotClosedMatches()).Returns(new List <DatabaseModel.CoinFlip>
            {
                new DatabaseModel.CoinFlip
                {
                    Created       = DateTime.Today,
                    CreatorIsHead = false,
                    CreatorUserId = 9,
                    GameModeId    = 1,
                    Hash          = "hash",
                    Salt          = "salt",
                    Id            = 1,
                    Percentage    = "",
                    RoundId       = "",
                    SettingId     = 0,
                    Status        = 1,
                    TimerStarted  = null,
                    WinnerId      = null
                },
                new DatabaseModel.CoinFlip
                {
                    Created       = DateTime.Today,
                    CreatorIsHead = false,
                    CreatorUserId = 10,
                    GameModeId    = 1,
                    Hash          = "hash",
                    Salt          = "salt",
                    Id            = 1,
                    Percentage    = "",
                    RoundId       = "",
                    SettingId     = 0,
                    Status        = 1,
                    TimerStarted  = null,
                    WinnerId      = null
                }
            });

            var itemService = new ItemService(_fakedRepoService);

            var avalibleItemsForUser = await itemService.GetAvalibleItemsForUser(user);

            A.CallTo(() => _fakedCoinFlipService.FindAllNotClosedMatches()).MustHaveHappened();

            Assert.Equal(4, avalibleItemsForUser.Count);
            Assert.Equal("itemDesc3", avalibleItemsForUser.Single(item => item.AssetId == "assetId5").Name);
            Assert.Equal("itemDesc3", avalibleItemsForUser.Single(item => item.AssetId == "assetId6").Name);
            Assert.Equal("itemDesc2", avalibleItemsForUser.Single(item => item.AssetId == "assetId3").Name);
            Assert.Equal("itemDesc1", avalibleItemsForUser.Single(item => item.AssetId == "assetId2").Name);
        }