Пример #1
0
        public async Task UserDepositItemsSuccess()
        {
            _offerMinmalInfo.OfferSend.SteamOffer.ItemsToGive.Clear();

            var offerTransInsertWithId = new DatabaseModel.OfferTransaction(1, 14, new decimal(196.91), true, "12345", DateTime.Today, 75);

            var userInsertRes = new DatabaseModel.User("userSteamId", "name", "img", "tradeLink", DateTime.Today, DateTime.Today, false, null, 1);

            A.CallTo(() => _fakedUserRepoService.FindAsync("userSteamId")).Returns(userInsertRes);

            var botLookRes = Task.FromResult(new DatabaseModel.Bot("botSteamId", "botName", 14));

            A.CallTo(() => _fakedBotRepoService.FindAsync("botSteamId")).Returns(botLookRes);

            A.CallTo(() => _fakedOfferTranascrionRepoService.InsertAsync(A <DatabaseModel.OfferTransaction> .That.Matches(o =>
                                                                                                                          o.IsDeposit && o.Accepted > DateTime.Today && o.BotId == 14 && o.UserId == 1 && o.Id == 0 && o.TotalValue == new decimal(196.91)
                                                                                                                          ), A <ITransactionWrapper> ._)).Returns(offerTransInsertWithId);

            await _offerService.DepositSteamOfferAsync(_offerMinmalInfo);

            A.CallTo(() => _fakedOfferTranascrionRepoService.InsertAsync(A <DatabaseModel.OfferTransaction> .That.Matches(o =>
                                                                                                                          o.IsDeposit && o.Accepted > DateTime.Today && o.BotId == 14 && o.UserId == 1 && o.Id == 0 && o.TotalValue == new decimal(196.91)
                                                                                                                          ), A <ITransactionWrapper> ._)).MustHaveHappened();
            A.CallTo(() => _fakedItemInOfferTransactionRepoService.InsertAsync(A <List <DatabaseModel.ItemInOfferTransaction> > .That.Matches(i =>
                                                                                                                                              i.Where(o => o.OfferTransactionId == 75 && o.ItemDescriptionId == 1 && o.Value == new decimal(11.22)).ToList().Count == 2 &&
                                                                                                                                              i.Where(o => o.OfferTransactionId == 75 && o.ItemDescriptionId == 3 && o.Value == new decimal(78.00)).ToList().Count == 1 &&
                                                                                                                                              i.Where(o => o.OfferTransactionId == 75 && o.ItemDescriptionId == 4 && o.Value == new decimal(5.47)).ToList().Count == 1 &&
                                                                                                                                              i.Where(o => o.OfferTransactionId == 75 && o.ItemDescriptionId == 2 && o.Value == new decimal(45.5)).ToList().Count == 2
                                                                                                                                              ), A <ITransactionWrapper> ._)).MustHaveHappened();

            A.CallTo(() => _fakedTransactionWrapper.Commit()).MustHaveHappened();
        }
Пример #2
0
        private async Task <DatabaseModel.OfferTransaction> InsertTransactionOfferAndItemsInTransactionOffer
        (
            ITransactionWrapper transactionWrapper,
            DatabaseModel.OfferTransaction offerTransactions,
            List <DatabaseModel.ItemInOfferTransaction> itemsInOffer
        )
        {
            var offerInsertResponse = await _offerRepoService.InsertAsync(offerTransactions, transactionWrapper);

            foreach (var itemInOfferTransaction in itemsInOffer)
            {
                itemInOfferTransaction.OfferTransactionId = offerInsertResponse.Id;
            }

            await _itemInOfferTransactionRepoService.InsertAsync(itemsInOffer, transactionWrapper);

            transactionWrapper?.Commit();
            return(offerInsertResponse);
        }
Пример #3
0
        public async Task CreateMatchSuccess()
        {
            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(() => _fakedMongoDbPreHashRepoService.Find(hash, creatorUser.SteamId)).Returns(new MongoDbModels.PreHash
            {
                Created     = DateTime.Today,
                Hash        = hash,
                Percentage  = percentageAsString,
                Salt        = salt,
                UserSteamId = creatorUser.SteamId
            });

            A.CallTo(() => _fakedRandomService.GenerateNewGuidAsString()).Returns("GUID");
            A.CallTo(() => _fakedJackpotSettingRepoService.InsertAsync(A <DatabaseModel.JackpotSetting> ._, A <ITransactionWrapper> ._))
            .Returns(new DatabaseModel.JackpotSetting {
                Id = 1
            });


            A.CallTo(() => _fakedUserRepoService.FindAsync(creatorUser.SteamId)).Returns(creatorUser);
            A.CallTo(() => _fakedGameModeRepoSerivce.Find(GameModeHelper.GetStringFromType(GameModeType.CoinFlip))).Returns(gameMode);

            var itemList = new List <AssetAndDescriptionId>
            {
                new AssetAndDescriptionId {
                    AssetId = "assetId1", DescriptionId = 1
                }
            };


            await _coinFlipService.CreateMatch(creatorUser.SteamId, true, itemList, _defaultSetting);

            A.CallTo(() => _fakedCoinFlipMatchRepoService.InsertAsync(A <DatabaseModel.CoinFlip> .That.Matches
                                                                          (m =>
                                                                          m.Created > DateTime.Today &&
                                                                          m.CreatorUserId == 10 &&
                                                                          m.CreatorIsHead == true &&
                                                                          m.Hash == hash &&
                                                                          m.Salt == salt &&
                                                                          m.Percentage == percentageAsString &&
                                                                          m.RoundId == "GUID" &&
                                                                          m.Status == (int)MatchStatus.Open &&
                                                                          m.TimerStarted == null &&
                                                                          m.WinnerId == null &&
                                                                          m.GameModeId == 2 &&
                                                                          m.SettingId == 1
                                                                          ),
                                                                      A <ITransactionWrapper> ._
                                                                      )).MustHaveHappened();

            A.CallTo(() => _fakedMongoDbPreHashRepoService.Find(hash, creatorUser.SteamId)).MustHaveHappened();
            A.CallTo(() => _fakedUserRepoService.FindAsync(creatorUser.SteamId)).MustHaveHappened();
            A.CallTo(() => _fakedTransactionWrapper.Commit()).MustHaveHappened();
            A.CallTo(() => _fakedBetService.PlaceBetOnCoinFlipMatch
                     (
                         A <DatabaseModel.CoinFlip> ._,
                         A <JackpotMatchSetting> ._,
                         A <DatabaseModel.GameMode> ._,
                         A <int> ._,
                         A <List <DatabaseModel.Item> > ._,
                         A <DatabaseModel.User> ._,
                         A <List <DatabaseModel.ItemDescription> > ._
                     )).MustHaveHappened();
            A.CallTo(() => _fakedMongoDbJackpotRepoService.InsertAsync(A <MongoDbModels.JackpotMatch> ._)).MustHaveHappened();
        }