public async void UserDepositSuccess()
        {
            var listOfDepositItems = new List <Item>
            {
                new Item {
                    AssetId = "assetId1", AppId = 730, ContextId = "2", MarketHashName = "weapon1"
                },
                new Item {
                    AssetId = "assetId2", AppId = 730, ContextId = "2", MarketHashName = "weapon2"
                },
                new Item {
                    AssetId = "assetId3", AppId = 730, ContextId = "2", MarketHashName = "weapon3"
                },
                new Item {
                    AssetId = "assetId4", AppId = 730, ContextId = "2", MarketHashName = "weapon1"
                },
            };

            var itemDescriptions = new List <DatabaseModel.ItemDescription>
            {
                new DatabaseModel.ItemDescription("weapon1", new decimal(1), "730", "2", "img", true, 1),
                new DatabaseModel.ItemDescription("weapon2", new decimal(2), "730", "2", "img", true, 2),
                new DatabaseModel.ItemDescription("weapon3", new decimal(3), "730", "2", "img", true, 3),
            };

            var botStack = new Stack <DatabaseModel.Bot>();

            botStack.Push(new DatabaseModel.Bot("botSteamId", "botName"));

            var steamInventory = new GetPlayerSteamInventoryResponse
            {
                PlayerInventory = new PlayerResponseItems
                {
                    Items = { listOfDepositItems }
                }
            };

            A.CallTo(() => _fakedSteamServiceClient.GetPlayerSteamInventoryAsync(A <GetPlayerSteamInventoryRequest> ._)).Returns(steamInventory);


            A.CallTo(() => _fakedSettingsRepoService.GetSettingsAsync()).Returns(new DatabaseModel.Settings(10, 0, 0, DateTime.Today, 20));
            A.CallTo(() => _fakedBotService.GetAvalibleBotsForDeposit(A <DatabaseModel.User> ._, A <List <DatabaseModel.Item> > ._)).Returns(botStack);
            A.CallTo(() => _fakedItemDescRepoService.FindAsync(A <List <string> > ._)).Returns(itemDescriptions);

            var respose = await _steamService.MakeDepositOfferAsync(_realUser.SteamId, listOfDepositItems);

            Assert.Equal(1, respose.Count);

            A.CallTo(() => _fakedSteamServiceClient.MakeOfferAsync(A <MakeOfferRequest> .That.Matches(
                                                                       offer => offer.SendItems == false &&
                                                                       offer.Items.Count == 4 &&
                                                                       offer.User.SteamId == _realUser.SteamId &&
                                                                       offer.BotName == "botName"
                                                                       )))
            .MustHaveHappened();
        }
Beispiel #2
0
 public void AddToCache(string steamId, GetPlayerSteamInventoryResponse cahce)
 {
     RemoveOutdatedCahches();
     try
     {
         _steamInventoryCaches.Add(steamId, new SteamInventoryCache(CacheTimeSpan, cahce));
     }
     catch (System.Exception e)
     {
         // ignored
     }
 }
        public async Task UserHasToManyItemInOurBotInventoryThrows()
        {
            var listOfDepositItems = new List <Item>
            {
                new Item {
                    AssetId = "assetId1", AppId = 730, ContextId = "2", MarketHashName = "weapon1"
                },
                new Item {
                    AssetId = "assetId2", AppId = 730, ContextId = "2", MarketHashName = "weapon2"
                },
                new Item {
                    AssetId = "assetId3", AppId = 730, ContextId = "2", MarketHashName = "weapon3"
                },
                new Item {
                    AssetId = "assetId4", AppId = 730, ContextId = "2", MarketHashName = "weapon1"
                },
            };

            var steamInventory = new GetPlayerSteamInventoryResponse
            {
                PlayerInventory = new PlayerResponseItems
                {
                    Items = { listOfDepositItems }
                }
            };

            A.CallTo(() => _fakedSteamServiceClient.GetPlayerSteamInventoryAsync(A <GetPlayerSteamInventoryRequest> ._)).Returns(steamInventory);

            var itemDescriptions = new List <DatabaseModel.ItemDescription>
            {
                new DatabaseModel.ItemDescription("weapon1", new decimal(1), "730", "2", "img", true, 1),
                new DatabaseModel.ItemDescription("weapon2", new decimal(2), "730", "2", "img", true, 2),
                new DatabaseModel.ItemDescription("weapon3", new decimal(3), "730", "2", "img", true, 3),
            };

            var botStack = new Stack <DatabaseModel.Bot>();

            botStack.Push(new DatabaseModel.Bot("botSteamId", "botName"));
            A.CallTo(() => _fakedSettingsRepoService.GetSettingsAsync())
            .Returns(new DatabaseModel.Settings(2, new decimal(0), 0, DateTime.Today, 20));

            A.CallTo(() => _fakedBotService.GetAvalibleBotsForDeposit(A <DatabaseModel.User> ._, A <List <DatabaseModel.Item> > ._)).Returns(botStack);
            A.CallTo(() => _fakedItemDescRepoService.FindAsync(A <List <string> > ._)).Returns(itemDescriptions);

            await Assert.ThrowsAsync <InventoryLimitExceeded>(async() =>
                                                              await _steamService.MakeDepositOfferAsync(_realUser.SteamId, listOfDepositItems));
        }
        public async void UserDepositsItemThatIsNotInItemDescriotionThrows()
        {
            var repositItems = new List <Item>
            {
                new Item {
                    AssetId = "assetId1", AppId = 730, ContextId = "2", MarketHashName = "weapon1"
                },
                new Item {
                    AssetId = "assetId2", AppId = 730, ContextId = "2", MarketHashName = "weapon2"
                },
                new Item {
                    AssetId = "assetId3", AppId = 730, ContextId = "2", MarketHashName = "weapon3"
                },
                new Item {
                    AssetId = "assetId4", AppId = 730, ContextId = "2", MarketHashName = "weapon1"
                },
            };

            var steamInventory = new GetPlayerSteamInventoryResponse
            {
                PlayerInventory = new PlayerResponseItems
                {
                    Items = { repositItems }
                }
            };

            A.CallTo(() => _fakedSteamServiceClient.GetPlayerSteamInventoryAsync(A <GetPlayerSteamInventoryRequest> ._)).Returns(steamInventory);

            var itemDescriptions = new List <DatabaseModel.ItemDescription>
            {
                new DatabaseModel.ItemDescription("weapon2", new decimal(2), "730", "2", "img", true, 2),
                new DatabaseModel.ItemDescription("weapon3", new decimal(3), "730", "2", "img", true, 3),
            };

            var botStack = new Stack <DatabaseModel.Bot>();

            botStack.Push(new DatabaseModel.Bot("botSteamId", "botName"));

            A.CallTo(() => _fakedBotService.GetAvalibleBotsForDeposit(A <DatabaseModel.User> ._, A <List <DatabaseModel.Item> > ._)).Returns(botStack);
            A.CallTo(() => _fakedItemDescRepoService.FindAsync(A <List <string> > ._)).Returns(itemDescriptions);

            await Assert.ThrowsAsync <ItemDescriptionNotInDatabase>(async() =>
                                                                    await _steamService.MakeDepositOfferAsync(_realUser.SteamId, repositItems));

            A.CallTo(() => _fakedItemDescRepoService.FindAsync(A <List <string> > ._)).MustHaveHappened();
        }
 public SteamInventoryCache(TimeSpan lifeSpan, GetPlayerSteamInventoryResponse inventory)
 {
     Created   = DateTime.Now;
     LifeSpan  = lifeSpan;
     Inventory = inventory;
 }