Ejemplo n.º 1
0
        private async Task <IList <BanlistCard> > MapToBanlistCards(long banlistId, IList <YugiohBanlistSection> yugiohBanlistSections)
        {
            var banlistCards = new List <BanlistCard>();

            var cardlimits = await _limitRepository.GetAll();

            const string forbidden   = "forbidden";
            const string limited     = "limited";
            const string semiLimited = "semi-limited";
            const string unlimited   = "unlimited";

            var forbiddenBanSection   = yugiohBanlistSections.FirstOrDefault(bs => bs.Title.Equals(forbidden, StringComparison.OrdinalIgnoreCase));
            var limitedBanSection     = yugiohBanlistSections.FirstOrDefault(bs => bs.Title.Equals(limited, StringComparison.OrdinalIgnoreCase));
            var semiLimitedBanSection = yugiohBanlistSections.FirstOrDefault(bs => bs.Title.Equals(semiLimited, StringComparison.OrdinalIgnoreCase));
            var unlimitedBanSection   = yugiohBanlistSections.FirstOrDefault(bs => bs.Title.Equals(unlimited, StringComparison.OrdinalIgnoreCase));

            if (forbiddenBanSection != null && forbiddenBanSection.Content.Any())
            {
                await AddCardsToBanlist(banlistCards, forbiddenBanSection, banlistId, cardlimits, forbidden);
            }

            if (limitedBanSection != null && limitedBanSection.Content.Any())
            {
                await AddCardsToBanlist(banlistCards, limitedBanSection, banlistId, cardlimits, limited);
            }

            if (semiLimitedBanSection != null && semiLimitedBanSection.Content.Any())
            {
                await AddCardsToBanlist(banlistCards, semiLimitedBanSection, banlistId, cardlimits, semiLimited);
            }

            if (unlimitedBanSection != null && unlimitedBanSection.Content.Any())
            {
                await AddCardsToBanlist(banlistCards, unlimitedBanSection, banlistId, cardlimits, unlimited);
            }

            return(banlistCards);
        }
        public async Task Given_A_BanlistId_And_BanlistSections_Should_Invoke_Update_Method_Once()
        {
            // Arrange
            var yugiohBanlistSections = new List <YugiohBanlistSection>
            {
                new YugiohBanlistSection
                {
                    Title   = "Forbidden",
                    Content = new List <string> {
                        "Dark Hole"
                    }
                },
                new YugiohBanlistSection
                {
                    Title   = "Limited",
                    Content = new List <string> {
                        "Raigeki"
                    }
                },
                new YugiohBanlistSection
                {
                    Title   = "Semi-Limited",
                    Content = new List <string> {
                        "One For One"
                    }
                },
                new YugiohBanlistSection
                {
                    Title   = "Unlimited",
                    Content = new List <string> {
                        "Macro"
                    }
                }
            };

            _limitRepository.GetAll().Returns(new List <Limit>
            {
                new Limit
                {
                    Id   = 1,
                    Name = "Forbidden"
                },
                new Limit
                {
                    Id   = 2,
                    Name = "Limited"
                },
                new Limit
                {
                    Id   = 3,
                    Name = "Semi-Limited"
                },
                new Limit
                {
                    Id   = 4,
                    Name = "Unlimited"
                }
            });

            _cardRepository.CardByName(Arg.Any <string>()).Returns(new Card
            {
                Id = 432
            });

            // Act
            await _sut.Update(123, yugiohBanlistSections);

            // Assert
            await _banlistCardRepository.Received(1).Update(Arg.Any <long>(), Arg.Any <List <BanlistCard> >());
        }
Ejemplo n.º 3
0
 public IEnumerable <Limit> GetAllLimit()
 {
     return(_limitRepository.GetAll());
 }