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(); }
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); }
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); }