public async Task CreateMatchFailDueToNoItemsPlaced() { var percentage = 12.4587; var percentageAsString = percentage.ToString(CultureInfo.InvariantCulture); var salt = "randomSalt"; var hash = "ranomdHash"; var creatorUser = new DatabaseModel.User("steamId", "name", "imageURl", null, DateTime.Today, DateTime.Today, false, null, 10); var gameMode = new DatabaseModel.GameMode { CurrentSettingId = 1, IsEnabled = true, Type = GameModeHelper.GetStringFromType(GameModeType.CoinFlip), Id = 2 }; A.CallTo(() => _fakedRandomService.GeneratePercentage()).Returns(percentageAsString); A.CallTo(() => _fakedRandomService.GenerateSalt()).Returns(salt); A.CallTo(() => _fakedHashService.CreateBase64Sha512Hash(percentageAsString, salt)).Returns(hash); A.CallTo(() => _fakedUserRepoService.FindAsync(creatorUser.SteamId)).Returns(creatorUser); A.CallTo(() => _fakedGameModeRepoSerivce.Find(GameModeHelper.GetStringFromType(GameModeType.CoinFlip))).Returns(gameMode); var itemList = new List <AssetAndDescriptionId>(); await Assert.ThrowsAsync <InvalidBetException>(async() => await _coinFlipService.CreateMatch(creatorUser.SteamId, true, itemList, _defaultSetting)); A.CallTo(() => _fakedCoinFlipMatchRepoService.InsertAsync(A <DatabaseModel.CoinFlip> ._, A <ITransactionWrapper> ._)).MustNotHaveHappened(); A.CallTo(() => _fakedUserRepoService.FindAsync(creatorUser.SteamId)).MustHaveHappened(); }
public CoinFlipManagerTest() { _fakedRepoServiceFactory = A.Fake <IRepoServiceFactory>(); _fakedCoinFlipMatchRepoService = A.Fake <ICoinFlipMatchRepoService>(); _fakedBetRepoService = A.Fake <IBetRepoService>(); _fakedJackpotSettingRepo = A.Fake <IJackpotSettingRepo>(); _fakedGameModeRepoService = A.Fake <IGameModeRepoService>(); _fakedUserRepoService = A.Fake <IUserRepoService>(); _fakedCoinFlipService = A.Fake <ICoinFlipService>(); _fakedDraftingService = A.Fake <IJackpotDraftService>(); _gameMode = new DatabaseModel.GameMode { CurrentSettingId = 1, Id = 2, IsEnabled = true, Type = "CoinFlip" }; _coinFlipSocketSender = A.Dummy <ICoinFlipHubConnections>(); A.CallTo(() => _fakedRepoServiceFactory.UserRepoService).Returns(_fakedUserRepoService); A.CallTo(() => _fakedRepoServiceFactory.CoinFlipMatchRepoService).Returns(_fakedCoinFlipMatchRepoService); A.CallTo(() => _fakedRepoServiceFactory.BetRepoService).Returns(_fakedBetRepoService); A.CallTo(() => _fakedRepoServiceFactory.JackpotSettingRepo).Returns(_fakedJackpotSettingRepo); A.CallTo(() => _fakedRepoServiceFactory.GameModeRepoService).Returns(_fakedGameModeRepoService); A.CallTo(() => _fakedGameModeRepoService.Find(GameModeHelper.GetStringFromType(GameModeType.CoinFlip))).Returns(_gameMode); _dummyBetOrWithdrawQueueManager = A.Dummy <IBetOrWithdrawQueueManager>(); _dummyBetHubConnection = A.Dummy <IBetHubConnections>(); _dummyBetService = A.Dummy <IBetService>(); _dummyLogServiceFactory = A.Dummy <ILogServiceFactory>(); _dummyMongoJackpotRepoService = A.Dummy <IMongoJackpotRepoService>(); _dummyHotStatusManager = A.Dummy <IHotStatusManager>(); _dummyDiscordService = A.Dummy <IDiscordService>(); }
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); }