Example #1
0
        public async Task GetAvalibleBotsForDepositSuccess()
        {
            var user = new DatabaseModel.User("steamId", "name", "imgUrl", "tade", DateTime.Now, DateTime.Now, false, null, 10);

            var allItems = new List<DatabaseModel.Item>
            {
                new DatabaseModel.Item("assetId1", 1, 3, user.Id, DateTimeOffset.Now),
                new DatabaseModel.Item("assetId2", 1, 2, user.Id, DateTimeOffset.Now),
                new DatabaseModel.Item("assetId3", 1, 3, user.Id, DateTimeOffset.Now),
                new DatabaseModel.Item("assetId4", 1, 1, user.Id, DateTimeOffset.Now),
                new DatabaseModel.Item("assetId5", 1, 1, 5, DateTimeOffset.Now),
                new DatabaseModel.Item("assetId6", 1, 1, 5, DateTimeOffset.Now),
                new DatabaseModel.Item("assetId7", 1, 1, 1, DateTimeOffset.Now),
                new DatabaseModel.Item("assetId8", 1, 1, 4, DateTimeOffset.Now),
            };

            var usersItem = new List<DatabaseModel.Item>
            {
                new DatabaseModel.Item("assetId1", 1, 3, user.Id, DateTimeOffset.Now),
                new DatabaseModel.Item("assetId2", 1, 2, user.Id, DateTimeOffset.Now),
                new DatabaseModel.Item("assetId3", 1, 3, user.Id, DateTimeOffset.Now),
                new DatabaseModel.Item("assetId4", 1, 1, user.Id, DateTimeOffset.Now),
            };

            A.CallTo(() => _fakedItemRepoService.GetAll()).Returns(allItems);
            A.CallTo(() => _fakedItemRepoService.FindAsync(A<DatabaseModel.User>._))
                .Returns(allItems.Where(item => item.OwnerId == user.Id).ToList());
            A.CallTo(() => _fakedBotRepoService.FindAsync(2)).ReturnsLazily(call => Task.FromResult(CreateBot((int) call.Arguments[0])));
            A.CallTo(() => _fakedBotRepoService.FindAsync(A<List<int>>._)).ReturnsLazily(CreateBots);

            var bots = await _botService.GetAvalibleBotsForDeposit(user, usersItem);

            Assert.Equal(4, bots.Count);
            Assert.Equal(3, bots.Pop().Id);
            var botIdTemp = bots.Pop().Id;
            Assert.True(botIdTemp == 2 || botIdTemp == 1);
            var botIdTemp1 = bots.Pop().Id;
            Assert.True(botIdTemp1 == 2 || botIdTemp1 == 1);
            Assert.Equal(2, bots.Pop().Id);

            A.CallTo(() => _fakedBotRepoService.FindAsync(2)).MustHaveHappened();
        }