Ejemplo n.º 1
0
        public void get_items_with_id_5() //получить элементы с ID=5
        {
            //arrange
            MyCollection <int, string, string> mycoll = new MyCollection <int, string, string>();

            mycoll.AddToCollection(5, "Five", "Val_5_Five");
            mycoll.AddToCollection(5, "Six", "Val_5_Six");
            mycoll.AddToCollection(6, "Five", "Val_6_Five");
            mycoll.AddToCollection(2, "Two", "Val_2_Two");
            mycoll.AddToCollection(3, "Two", "Val_3_Two");
            mycoll.AddToCollection(5, "One", "Val_5_One");
            mycoll.AddToCollection(5, "Seven", "Val_5_Seven");

            //act
            var ListByID = mycoll.GetByID(5);

            //assert
            Assert.IsTrue(ListByID.Count == 4); //в списке 4 элемента удововлетворяющих ключу
        }
        private Deck GetDeck(string url)
        {
            Deck toReturn = new Deck();

            HtmlWeb      web = new HtmlWeb();
            HtmlDocument doc = web.Load(url);

            toReturn.Url = url;
            HtmlNode deckLink = doc.DocumentNode.SelectSingleNode("//*[contains(@class,'article-content')]/p/a/img");

            if (deckLink == null)
            {
                deckLink = doc.DocumentNode.SelectSingleNode("//*[contains(@class,'entry-content')]/p/a/img");
            }
            if (deckLink == null)
            {
                return(null);
            }
            string temp = deckLink.ParentNode.GetAttributeValue("href", string.Empty);

            doc = web.Load(temp);

            HtmlNode cardsMeta   = doc.DocumentNode.SelectSingleNode("//meta[@property='x-hearthstone:deck:cards']");
            string   cardsString = cardsMeta.GetAttributeValue("content", string.Empty);

            foreach (string cardID in cardsString.Split(','))
            {
                Card card = MyCollection.GetByID(cardID);
                if (toReturn.Cards.ContainsKey(card))
                {
                    toReturn.Cards[card]++;
                }
                else
                {
                    toReturn.Cards.Add(card, 1);
                }
            }

            return(toReturn);
        }