Exemplo n.º 1
0
        public async Task Given_Ids_List_RelatedArticlesRequestParameters_Should_Execute_Successfully()
        {
            // Arrange
            _wikiaHttpClient.GetString(Arg.Any <string>(), Arg.Any <Dictionary <string, string> >()).Returns(@"{ ""items"": { ""50"": [ { ""url"": ""/wiki/Super_Junior_Confrontation"", ""title"": ""Super Junior Confrontation"", ""id"": 23338, ""imgUrl"": ""https://vignette.wikia.nocookie.net/yugioh/images/2/21/SuperJuniorConfrontation-DR04-NA-C-UE.png/revision/latest/window-crop/width/200/x-offset/0/y-offset/58/window-width/400/window-height/200?cb=20080530031342"", ""imgOriginalDimensions"": { ""width"": ""400"", ""height"": ""580"" }, ""text"": ""Super Junior Confrontation スーパージュニア対(たい)決(けつ)! English Super Junior Confrontation French..."" }, { ""url"": ""/wiki/Topologic_Trisbaena"", ""title"": ""Topologic Trisbaena"", ""id"": 681182, ""imgUrl"": ""https://vignette.wikia.nocookie.net/yugioh/images/2/2b/TopologicTrisbaena-FLOD-EN-ScR-1E.png/revision/latest/window-crop/width/200/x-offset/0/y-offset/70/window-width/479/window-height/240?cb=20180504165822"", ""imgOriginalDimensions"": { ""width"": ""479"", ""height"": ""700"" }, ""text"": ""Check translation Check translation"" }, { ""url"": ""/wiki/Witchcrafter_Draping"", ""title"": ""Witchcrafter Draping"", ""id"": 702109, ""imgUrl"": ""https://vignette.wikia.nocookie.net/yugioh/images/4/47/WitchcrafterDraping-INCH-EN-1E-OP.png/revision/latest/window-crop/width/200/x-offset/0/y-offset/66/window-width/450/window-height/225?cb=20190315154155"", ""imgOriginalDimensions"": { ""width"": ""450"", ""height"": ""656"" }, ""text"": ""The English lore given is not official. Check translation"" } ] }, ""basepath"": ""https://yugioh.fandom.com"" }");

            // Act
            var result = await _sut.Articles(50);

            // Assert
            result.Items.Should().NotBeEmpty();
        }
Exemplo n.º 2
0
        public async Task Given_An_ActivityRequestParameters_Should_Return_Latest_Activities()
        {
            // Arrange
            _wikiaHttpClient.GetString(Arg.Any <string>(), Arg.Any <Dictionary <string, string> >()).Returns(@"{ ""items"": [ { ""article"": 342, ""user"": 1426382, ""revisionId"": 4196090, ""timestamp"": 1554048731 } ], ""basepath"": ""https://yugioh.fandom.com"" }");

            // Act
            var result = await _sut.Latest();

            // Assert
            result.Items.Should().NotBeEmpty();
        }
Exemplo n.º 3
0
        public async Task If_Invoked_Should_Return_Wikia_Variables()
        {
            // Arrange
            _wikiaHttpClient.GetString(Arg.Any <string>()).Returns(@"{ ""data"": { ""appleTouchIcon"": { ""url"": ""https://vignette.wikia.nocookie.net/yugioh/images/b/bc/Wiki.png/revision/latest?cb=20070302001228"", ""size"": ""153x153"" }, ""articlePath"": ""/wiki/"", ""basePath"": ""https://yugioh.fandom.com"", ""dbName"": ""yugioh"", ""favicon"": ""https://vignette.wikia.nocookie.net/yugioh/images/6/64/Favicon.ico/revision/latest?cb=20090626015303"", ""id"": 410, ""isClosed"": false, ""htmlTitle"": { ""separator"": "" | "", ""parts"": [ ""Yu-Gi-Oh!"", ""FANDOM powered by Wikia"" ] }, ""language"": { ""content"": ""en"", ""contentDir"": ""ltr"" }, ""scriptPath"": """", ""siteName"": ""Yu-Gi-Oh!"", ""specialRobotPolicy"": null, ""surrogateKey"": ""wiki-410"", ""tracking"": { ""vertical"": ""games"", ""comscore"": { ""c7Value"": ""wikiacsid_games"" }, ""netzathleten"": { ""enabled"": true, ""url"": ""//tag.md-nx.com/nx/438359d5-7944-441e-8720-1ab8a1f65560/loader.js"" }, ""quantcast"": { ""labels"": ""Genre.action,Genre.adventure,Genre.anime,Genre.comic,Genre.fantasy,Media.movies,Media.tv,Media.comics,Media.cards"" } }, ""cacheBuster"": 8340058340012, ""cdnRootUrl"": ""https://slot1-images.wikia.nocookie.net"", ""contentNamespaces"": [ 0, 100, 102, 104, 106, 108, 112, 114, 116, 118, 120, 122, 124, 126, ""128"", ""130"", ""131"" ], ""defaultSkin"": ""oasis"", ""disableAnonymousEditing"": true, ""disableAnonymousUploadForMercury"": false, ""disableMobileSectionEditor"": false, ""discussionColorOverride"": """", ""enableCommunityData"": true, ""enableDiscussions"": true, ""enableDiscussionsImageUpload"": true, ""enableFandomAppSmartBanner"": true, ""enableLightweightContributions"": true, ""enableNewAuth"": true, ""fandomAppSmartBannerText"": null, ""homepage"": ""http://www.wikia.com/fandom"", ""isCoppaWiki"": true, ""isDarkTheme"": false, ""localNav"": [ { ""text"": ""Top Content"", ""href"": ""#"", ""children"": [ { ""text"": ""Most Visited"", ""href"": ""#"", ""children"": [ { ""text"": ""Duel Power"", ""href"": ""/wiki/Duel_Power"" }, { ""text"": ""Rising Rampage"", ""href"": ""/wiki/Rising_Rampage"" }, { ""text"": ""Dark Neostorm"", ""href"": ""/wiki/Dark_Neostorm"" }, { ""text"": ""Yu-Gi-Oh! VRAINS - Episode 095"", ""href"": ""/wiki/Yu-Gi-Oh!_VRAINS_-_Episode_095"" }, { ""text"": ""Arcana Force"", ""href"": ""/wiki/Arcana_Force"" }, { ""text"": ""The Infinity Chasers"", ""href"": ""/wiki/The_Infinity_Chasers"" }, { ""text"": ""Structure Deck R: Lord of Magician"", ""href"": ""/wiki/Structure_Deck_R:_Lord_of_Magician"" } ] }, { ""text"": ""Newly Changed"", ""href"": ""#"", ""children"": [ { ""text"": ""Divine Dragon Ragnarok"", ""href"": ""/wiki/Divine_Dragon_Ragnarok"" }, { ""text"": ""Armor Exe"", ""href"": ""/wiki/Armor_Exe"" }, { ""text"": ""Ancient Sorcerer"", ""href"": ""/wiki/Ancient_Sorcerer"" }, { ""text"": ""Amores of Prophecy"", ""href"": ""/wiki/Amores_of_Prophecy"" }, { ""text"": ""Millennium-Eyes Illusionist"", ""href"": ""/wiki/Millennium-Eyes_Illusionist"" }, { ""text"": ""Illusionist Faceless Magician"", ""href"": ""/wiki/Illusionist_Faceless_Magician"" }, { ""text"": ""LVP1-JP036"", ""href"": ""/wiki/LVP1-JP036"" } ] }, { ""text"": ""Random"", ""href"": ""/wiki/Special:Random"", ""children"": [ { ""text"": ""Random Page"", ""href"": ""/wiki/Special:Random"" }, { ""text"": ""Gallery"", ""href"": ""/wiki/Special:Random/Card_Gallery"" }, { ""text"": ""Rulings"", ""href"": ""/wiki/Special:Random/Card_Rulings"" }, { ""text"": ""Errata"", ""href"": ""/wiki/Special:Random/Card_Errata"" }, { ""text"": ""Tips"", ""href"": ""/wiki/Special:Random/Card_Tips"" }, { ""text"": ""Appearances‎"", ""href"": ""/wiki/Special:Random/Card_Appearances"" }, { ""text"": ""Trivia"", ""href"": ""/wiki/Special:Random/Card_Trivia"" } ] } ] }, { ""text"": ""Characters"", ""href"": ""/wiki/Category:Characters"", ""children"": [ { ""text"": ""VRAINS"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_VRAINS_characters"", ""children"": [ { ""text"": ""Anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_VRAINS_anime_characters"" } ] }, { ""text"": ""ARC-V"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_ARC-V_characters"", ""children"": [ { ""text"": ""Anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_ARC-V_anime_characters"" }, { ""text"": ""Manga"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_ARC-V_manga_characters"" } ] }, { ""text"": ""ZEXAL"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_ZEXAL_characters"", ""children"": [ { ""text"": ""Anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_ZEXAL_anime_characters"" }, { ""text"": ""Manga"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_ZEXAL_manga_characters"" }, { ""text"": ""D Team"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_D_Team_ZEXAL_characters"" } ] }, { ""text"": ""5D's"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_5D%27s_characters"", ""children"": [ { ""text"": ""Anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_5D%27s_anime_characters"" }, { ""text"": ""Manga"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_5D%27s_manga_characters"" } ] }, { ""text"": ""GX"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_GX_characters"", ""children"": [ { ""text"": ""Anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_GX_anime_characters"" }, { ""text"": ""Manga"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_GX_manga_characters"" } ] }, { ""text"": ""Yu-Gi-Oh!"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_characters"", ""children"": [ { ""text"": ""Second anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_anime_characters"" }, { ""text"": ""First anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_first_series_anime_characters"" }, { ""text"": ""Manga"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_manga_characters"" } ] } ] }, { ""text"": ""Card Gallery"", ""href"": ""/wiki/Category:Card_Gallery"", ""children"": [ { ""text"": ""Sets by language"", ""href"": ""/wiki/Category:Set_Card_Galleries"", ""children"": [ { ""text"": ""Japanese Set Card Gallery"", ""href"": ""/wiki/Category:Japanese_Set_Card_Galleries"" }, { ""text"": ""English Set Card Gallery"", ""href"": ""/wiki/Category:English_Set_Card_Galleries"" }, { ""text"": ""French Set Card Gallery"", ""href"": ""/wiki/Category:French_Set_Card_Galleries"" }, { ""text"": ""German Set Card Gallery"", ""href"": ""/wiki/Category:German_Set_Card_Galleries"" }, { ""text"": ""Italian Set Card Gallery"", ""href"": ""/wiki/Category:Italian_Set_Card_Galleries"" }, { ""text"": ""Portuguese Set Card Gallery"", ""href"": ""/wiki/Category:Portuguese_Set_Card_Galleries"" }, { ""text"": ""Spanish Set Card Gallery"", ""href"": ""/wiki/Category:Spanish_Set_Card_Galleries"" }, { ""text"": ""Korean Set Card Gallery"", ""href"": ""/wiki/Category:Korean_Set_Card_Galleries"" } ] }, { ""text"": ""Sets by type"", ""href"": ""/wiki/Category:Set_Card_Galleries"", ""children"": [ { ""text"": ""Unlimited Edition Set Card Gallery"", ""href"": ""/wiki/Category:Unlimited_Edition_Set_Card_Galleries"" }, { ""text"": ""1st Edition Set Card Gallery"", ""href"": ""/wiki/Category:1st_Edition_Set_Card_Galleries"" }, { ""text"": ""Limited Edition Set Card Gallery"", ""href"": ""/wiki/Category:Limited_Edition_Set_Card_Galleries"" }, { ""text"": ""Yu-Gi-Oh! GX Chapter Card Gallery"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_GX_Chapter_Card_Galleries"" }, { ""text"": ""Yu-Gi-Oh! 5D's Episode Card Gallery"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_5D%27s_Episode_Card_Galleries"" }, { ""text"": ""Yu-Gi-Oh! ZEXAL Episode Card Gallery"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_ZEXAL_Episode_Card_Galleries"" }, { ""text"": ""Yu-Gi-Oh! ARC-V Episode Card Gallery"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_ARC-V_Episode_Card_Galleries"" } ] } ] }, { ""text"": ""Community"", ""href"": ""#"", ""children"": [ { ""text"": ""Current Events"", ""href"": ""/wiki/Yu-Gi-Oh!:Current_events"" }, { ""text"": ""Policies"", ""href"": ""/wiki/Category:Policy"" }, { ""text"": ""Forum"", ""href"": ""/wiki/Forum:Index"", ""children"": [ { ""text"": ""Yu-Gi-Oh! Ruling Queries"", ""href"": ""/wiki/Forum:Yu-Gi-Oh!_Ruling_Queries"" }, { ""text"": ""Yu-Gi-Oh! Deck Help"", ""href"": ""/wiki/Forum:Yu-Gi-Oh!_Deck_Help"" }, { ""text"": ""Yu-Gi-Oh! Lists Discussion"", ""href"": ""/wiki/Forum:Yu-Gi-Oh!_Lists_Discussion"" }, { ""text"": ""General Yu-Gi-Oh! Discussion"", ""href"": ""/wiki/Forum:General_Yu-Gi-Oh!_Discussion"" }, { ""text"": ""Duel Terminal"", ""href"": ""/wiki/Forum:Duel_Terminal"" }, { ""text"": ""Help desk"", ""href"": ""/wiki/Forum:Help_desk"" }, { ""text"": ""Yu-Gi-Oh! Wiki Community Discussion"", ""href"": ""/wiki/Forum:Yu-Gi-Oh!_Wiki_Community_Discussion"" }, { ""text"": ""Weekly Deck Competition"", ""href"": ""/wiki/Forum:Weekly_Deck_Competition"" } ] }, { ""text"": ""Recent Changes"", ""href"": ""/wiki/Special:RecentChanges"" }, { ""text"": ""Help"", ""href"": ""/wiki/Help:Contents"" } ] } ], ""mainPageTitle"": ""Yu-Gi-Oh!_Wikia"", ""namespaces"": { ""0"": """", ""1"": ""Talk"", ""2"": ""User"", ""3"": ""User_talk"", ""4"": ""Yu-Gi-Oh!"", ""5"": ""Yu-Gi-Oh!_talk"", ""6"": ""File"", ""7"": ""File_talk"", ""8"": ""MediaWiki"", ""9"": ""MediaWiki_talk"", ""10"": ""Template"", ""11"": ""Template_talk"", ""12"": ""Help"", ""13"": ""Help_talk"", ""14"": ""Category"", ""15"": ""Category_talk"", ""100"": ""Card_Gallery"", ""101"": ""Card_Gallery_talk"", ""102"": ""Card_Rulings"", ""103"": ""Card_Rulings_talk"", ""104"": ""Card_Errata"", ""105"": ""Card_Errata_talk"", ""106"": ""Card_Tips"", ""107"": ""Card_Tips_talk"", ""108"": ""Card_Trivia"", ""109"": ""Card_Trivia_talk"", ""110"": ""Forum"", ""111"": ""Forum_talk"", ""112"": ""Card_Appearances"", ""113"": ""Card_Appearances_talk"", ""114"": ""Portal"", ""115"": ""Portal_talk"", ""116"": ""Card_Lores"", ""117"": ""Card_Lores_talk"", ""118"": ""Card_Artworks"", ""119"": ""Card_Artworks_talk"", ""120"": ""Card_Names"", ""121"": ""Card_Names_talk"", ""122"": ""Set_Card_Lists"", ""123"": ""Set_Card_Lists_talk"", ""124"": ""Set_Card_Galleries"", ""125"": ""Set_Card_Galleries_talk"", ""126"": ""Set_Card_Ratios"", ""127"": ""Set_Card_Ratios_talk"", ""128"": ""Card_Sets"", ""129"": ""Card_Sets_talk"", ""130"": ""Transcript"", ""131"": ""Transcript_talk"", ""302"": ""Property"", ""303"": ""Property_talk"", ""304"": ""Type"", ""305"": ""Type_talk"", ""306"": ""Form"", ""307"": ""Form_talk"", ""308"": ""Concept"", ""309"": ""Concept_talk"", ""370"": ""Filter"", ""371"": ""Filter_talk"", ""828"": ""Module"", ""829"": ""Module_talk"", ""1200"": ""Message_Wall"", ""1201"": ""Thread"", ""1202"": ""Message_Wall_Greeting"", ""2000"": ""Board"", ""2001"": ""Board_Thread"", ""2002"": ""Topic"", ""-2"": ""Media"", ""-1"": ""Special"" }, ""qualarooUrl"": ""//s3.amazonaws.com/ki.js/52510/gQT.js"", ""recommendedVideoPlaylist"": """", ""recommendedVideoRelatedMediaId"": ""WNcPjgNz"", ""siteMessage"": ""Yu-Gi-Oh!"", ""theme"": { ""color-body"": ""#3b0902"", ""color-body-middle"": ""#3b0902"", ""color-page"": ""#ffffff"", ""color-buttons"": ""#fec356"", ""color-community-header"": ""#fec356"", ""color-links"": ""#0148c2"", ""color-header"": ""#fec024"", ""background-image"": ""https://images2.wikia.nocookie.net/__cb20130314221841/yugioh/images/5/50/Wiki-background"", ""background-image-width"": ""1920"", ""background-image-height"": ""805"", ""background-dynamic"": ""true"", ""page-opacity"": ""100"" }, ""twitterAccount"": ""@getfandom"", ""wikiCategories"": [ ""anime"" ], ""vertical"": ""games"", ""image"": ""https://vignette.wikia.nocookie.net/yugioh/images/b/bc/Wikia-Visualization-Main%2Cyugioh.png/revision/latest/window-crop/width/500/x-offset/0/y-offset/0/window-width/321/window-height/320?cb=20161102140946"", ""disableHTTPSDowngrade"": false } }");

            // Act
            var result = await _sut.WikiVariables();

            // Assert
            result.Should().NotBeNull();
        }
Exemplo n.º 4
0
        public async Task If_Invoked_Should_Return_Wikia_NavigationLinks()
        {
            // Arrange
            _wikiaHttpClient.GetString(Arg.Any <string>()).Returns(@"{ ""navigation"": { ""wikia"": [ { ""text"": ""On the Wiki"", ""href"": ""#"", ""children"": [ { ""text"": ""Wiki Activity"", ""href"": ""/wiki/Special:WikiActivity"" }, { ""text"": ""Page"", ""href"": ""/wiki/Special:Random"" }, { ""text"": ""Videos"", ""href"": ""/wiki/Special:Videos"" }, { ""text"": ""Photos"", ""href"": ""/wiki/Special:NewFiles"" }, { ""text"": ""Discussions"", ""href"": ""/d/f"" } ] } ], ""wiki"": [ { ""text"": ""Top Content"", ""href"": ""#"", ""children"": [ { ""text"": ""Most Visited"", ""href"": ""#"", ""children"": [ { ""text"": ""Duel Power"", ""href"": ""/wiki/Duel_Power"" }, { ""text"": ""Rising Rampage"", ""href"": ""/wiki/Rising_Rampage"" }, { ""text"": ""Dark Neostorm"", ""href"": ""/wiki/Dark_Neostorm"" }, { ""text"": ""Yu-Gi-Oh! VRAINS - Episode 095"", ""href"": ""/wiki/Yu-Gi-Oh!_VRAINS_-_Episode_095"" }, { ""text"": ""Arcana Force"", ""href"": ""/wiki/Arcana_Force"" }, { ""text"": ""The Infinity Chasers"", ""href"": ""/wiki/The_Infinity_Chasers"" }, { ""text"": ""Structure Deck R: Lord of Magician"", ""href"": ""/wiki/Structure_Deck_R:_Lord_of_Magician"" } ] }, { ""text"": ""Newly Changed"", ""href"": ""#"", ""children"": [ { ""text"": ""Divine Dragon Ragnarok"", ""href"": ""/wiki/Divine_Dragon_Ragnarok"" }, { ""text"": ""Armor Exe"", ""href"": ""/wiki/Armor_Exe"" }, { ""text"": ""Ancient Sorcerer"", ""href"": ""/wiki/Ancient_Sorcerer"" }, { ""text"": ""Amores of Prophecy"", ""href"": ""/wiki/Amores_of_Prophecy"" }, { ""text"": ""Millennium-Eyes Illusionist"", ""href"": ""/wiki/Millennium-Eyes_Illusionist"" }, { ""text"": ""Illusionist Faceless Magician"", ""href"": ""/wiki/Illusionist_Faceless_Magician"" }, { ""text"": ""LVP1-JP036"", ""href"": ""/wiki/LVP1-JP036"" } ] }, { ""text"": ""Random"", ""href"": ""/wiki/Special:Random"", ""children"": [ { ""text"": ""Random Page"", ""href"": ""/wiki/Special:Random"" }, { ""text"": ""Gallery"", ""href"": ""/wiki/Special:Random/Card_Gallery"" }, { ""text"": ""Rulings"", ""href"": ""/wiki/Special:Random/Card_Rulings"" }, { ""text"": ""Errata"", ""href"": ""/wiki/Special:Random/Card_Errata"" }, { ""text"": ""Tips"", ""href"": ""/wiki/Special:Random/Card_Tips"" }, { ""text"": ""Appearances‎"", ""href"": ""/wiki/Special:Random/Card_Appearances"" }, { ""text"": ""Trivia"", ""href"": ""/wiki/Special:Random/Card_Trivia"" } ] } ] }, { ""text"": ""Characters"", ""href"": ""/wiki/Category:Characters"", ""children"": [ { ""text"": ""VRAINS"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_VRAINS_characters"", ""children"": [ { ""text"": ""Anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_VRAINS_anime_characters"" } ] }, { ""text"": ""ARC-V"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_ARC-V_characters"", ""children"": [ { ""text"": ""Anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_ARC-V_anime_characters"" }, { ""text"": ""Manga"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_ARC-V_manga_characters"" } ] }, { ""text"": ""ZEXAL"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_ZEXAL_characters"", ""children"": [ { ""text"": ""Anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_ZEXAL_anime_characters"" }, { ""text"": ""Manga"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_ZEXAL_manga_characters"" }, { ""text"": ""D Team"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_D_Team_ZEXAL_characters"" } ] }, { ""text"": ""5D's"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_5D%27s_characters"", ""children"": [ { ""text"": ""Anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_5D%27s_anime_characters"" }, { ""text"": ""Manga"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_5D%27s_manga_characters"" } ] }, { ""text"": ""GX"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_GX_characters"", ""children"": [ { ""text"": ""Anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_GX_anime_characters"" }, { ""text"": ""Manga"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_GX_manga_characters"" } ] }, { ""text"": ""Yu-Gi-Oh!"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_characters"", ""children"": [ { ""text"": ""Second anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_anime_characters"" }, { ""text"": ""First anime"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_first_series_anime_characters"" }, { ""text"": ""Manga"", ""href"": ""/wiki/Portal:Yu-Gi-Oh!_manga_characters"" } ] } ] }, { ""text"": ""Card Gallery"", ""href"": ""/wiki/Category:Card_Gallery"", ""children"": [ { ""text"": ""Sets by language"", ""href"": ""/wiki/Category:Set_Card_Galleries"", ""children"": [ { ""text"": ""Japanese Set Card Gallery"", ""href"": ""/wiki/Category:Japanese_Set_Card_Galleries"" }, { ""text"": ""English Set Card Gallery"", ""href"": ""/wiki/Category:English_Set_Card_Galleries"" }, { ""text"": ""French Set Card Gallery"", ""href"": ""/wiki/Category:French_Set_Card_Galleries"" }, { ""text"": ""German Set Card Gallery"", ""href"": ""/wiki/Category:German_Set_Card_Galleries"" }, { ""text"": ""Italian Set Card Gallery"", ""href"": ""/wiki/Category:Italian_Set_Card_Galleries"" }, { ""text"": ""Portuguese Set Card Gallery"", ""href"": ""/wiki/Category:Portuguese_Set_Card_Galleries"" }, { ""text"": ""Spanish Set Card Gallery"", ""href"": ""/wiki/Category:Spanish_Set_Card_Galleries"" }, { ""text"": ""Korean Set Card Gallery"", ""href"": ""/wiki/Category:Korean_Set_Card_Galleries"" } ] }, { ""text"": ""Sets by type"", ""href"": ""/wiki/Category:Set_Card_Galleries"", ""children"": [ { ""text"": ""Unlimited Edition Set Card Gallery"", ""href"": ""/wiki/Category:Unlimited_Edition_Set_Card_Galleries"" }, { ""text"": ""1st Edition Set Card Gallery"", ""href"": ""/wiki/Category:1st_Edition_Set_Card_Galleries"" }, { ""text"": ""Limited Edition Set Card Gallery"", ""href"": ""/wiki/Category:Limited_Edition_Set_Card_Galleries"" }, { ""text"": ""Yu-Gi-Oh! GX Chapter Card Gallery"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_GX_Chapter_Card_Galleries"" }, { ""text"": ""Yu-Gi-Oh! 5D's Episode Card Gallery"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_5D%27s_Episode_Card_Galleries"" }, { ""text"": ""Yu-Gi-Oh! ZEXAL Episode Card Gallery"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_ZEXAL_Episode_Card_Galleries"" }, { ""text"": ""Yu-Gi-Oh! ARC-V Episode Card Gallery"", ""href"": ""/wiki/Category:Yu-Gi-Oh!_ARC-V_Episode_Card_Galleries"" } ] } ] }, { ""text"": ""Community"", ""href"": ""#"", ""children"": [ { ""text"": ""Current Events"", ""href"": ""/wiki/Yu-Gi-Oh!:Current_events"" }, { ""text"": ""Policies"", ""href"": ""/wiki/Category:Policy"" }, { ""text"": ""Forum"", ""href"": ""/wiki/Forum:Index"", ""children"": [ { ""text"": ""Yu-Gi-Oh! Ruling Queries"", ""href"": ""/wiki/Forum:Yu-Gi-Oh!_Ruling_Queries"" }, { ""text"": ""Yu-Gi-Oh! Deck Help"", ""href"": ""/wiki/Forum:Yu-Gi-Oh!_Deck_Help"" }, { ""text"": ""Yu-Gi-Oh! Lists Discussion"", ""href"": ""/wiki/Forum:Yu-Gi-Oh!_Lists_Discussion"" }, { ""text"": ""General Yu-Gi-Oh! Discussion"", ""href"": ""/wiki/Forum:General_Yu-Gi-Oh!_Discussion"" }, { ""text"": ""Duel Terminal"", ""href"": ""/wiki/Forum:Duel_Terminal"" }, { ""text"": ""Help desk"", ""href"": ""/wiki/Forum:Help_desk"" }, { ""text"": ""Yu-Gi-Oh! Wiki Community Discussion"", ""href"": ""/wiki/Forum:Yu-Gi-Oh!_Wiki_Community_Discussion"" }, { ""text"": ""Weekly Deck Competition"", ""href"": ""/wiki/Forum:Weekly_Deck_Competition"" } ] }, { ""text"": ""Recent Changes"", ""href"": ""/wiki/Special:RecentChanges"" }, { ""text"": ""Help"", ""href"": ""/wiki/Help:Contents"" } ] } ] } }");

            // Act
            var result = await _sut.NavigationLinks();

            // Assert
            result.Should().NotBeNull();
        }
Exemplo n.º 5
0
        public async Task Given_A_Valid_ArticleId_Should_Return_ContentResult()
        {
            // Arrange
            const long articleId = 2342;

            _wikiaHttpClient.GetString(Arg.Any <string>(), Arg.Any <Dictionary <string, string> >()).Returns(@"{ ""sections"": [ { ""title"": ""Solemn Wishes"", ""level"": 1, ""content"": [], ""images"": [] } ] }");

            // Act
            var result = await _sut.Simple(articleId);

            // Assert
            result.Should().NotBeNull();
        }
Exemplo n.º 6
0
        public async Task Given_A_Query_Should_Execute_Successfully()
        {
            // Arrange
            const string query = "jinzo";

            _wikiaHttpClient.GetString(Arg.Any <string>(), Arg.Any <Dictionary <string, string> >()).Returns(@"{ ""total"": 1335, ""batches"": 54, ""currentBatch"": ""1"", ""next"": 26, ""items"": [ { ""id"": 149, ""title"": ""Jinzo"", ""url"": ""https://yugioh.fandom.com/wiki/Jinzo"", ""ns"": 0, ""quality"": 98, ""snippet"": ""This article is about the card. For the character, see <span class=\""searchmatch\"">Jinzo</span> (character). For the archetype, see <span class=\""searchmatch\"">Jinzo</span> (archetype). The Arabic, Croatian, Danish, Greek, Thai andTurkish names given are not official. (card names&hellip;"" }, { ""id"": 142661, ""title"": ""Jinzo (archetype)"", ""url"": ""http://yugioh.fandom.com/wiki/Jinzo_(archetype)"", ""ns"": 0, ""quality"": 96, ""snippet"": ""<span class=\""searchmatch\"">Jinzo</span> 人造人間 「じんぞうにんげん 」 (Jinzōningen ) Translation Android Other names Chinese 人造人 Translation: Android French <span class=\""searchmatch\"">Jinzo</span> German <span class=\""searchmatch\"">Jinzo</span> Italian <span class=\""searchmatch\"">Jinzo</span> Korean&hellip;"" }, { ""id"": 56659, ""title"": ""Jinzo (character)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_(character)"", ""ns"": 0, ""quality"": 98, ""snippet"": ""<span class=\""searchmatch\"">Jinzo</span> Corresponding card <span class=\""searchmatch\"">Jinzo</span> English name <span class=\""searchmatch\"">Jinzo</span> Japanese translated Android - Psycho Shocker Japanese name 人(じん)造(ぞう)人(にん)間(げん) -サイコ・ショッカー 人造人間&hellip;"" }, { ""id"": 402128, ""title"": ""Jinzo Art"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_Art"", ""ns"": 0, ""quality"": 11, ""snippet"": ""<span class=\""searchmatch\"">Jinzo</span> Art, or <span class=\""searchmatch\"">Jinzo</span> Legacy, known as Psycho Art (サイコ流 Saiko Ryū) in the Japanese version, is a term used in the Yu-Gi-Oh! GX anime. It denotes&hellip;"" }, { ""id"": 71747, ""title"": ""Jinzo - Returner"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_-_Returner"", ""ns"": 0, ""quality"": 89, ""snippet"": ""<span class=\""searchmatch\"">Jinzo</span> - Returner 人(じん)造(ぞう)人(にん)間(げん)-サイコ・リターナー English <span class=\""searchmatch\"">Jinzo</span> - Returner Chinese 人造人-念力归来者 Check translation French Résurrecteur <span class=\""searchmatch\"">Jinzo</span> Check&hellip;"" }, { ""id"": 72705, ""title"": ""Jinzo - Lord"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_-_Lord"", ""ns"": 0, ""quality"": 94, ""snippet"": ""<span class=\""searchmatch\"">Jinzo</span> - Lord 人(じん)造(ぞう)人(にん)間(げん)-サイコ・ロード English <span class=\""searchmatch\"">Jinzo</span> - Lord Chinese 人造人-念力王者 Check translation French Seigneur <span class=\""searchmatch\"">Jinzo</span> Check translation German&hellip;"" }, { ""id"": 485423, ""title"": ""Jinzo - Jector"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_-_Jector"", ""ns"": 0, ""quality"": 95, ""snippet"": ""<span class=\""searchmatch\"">Jinzo</span> - Jector 人(じん)造(ぞう)人(にん)間(げん)-サイコ・ジャッカー English <span class=\""searchmatch\"">Jinzo</span> - Jector French Injecteur <span class=\""searchmatch\"">Jinzo</span> Check translation German <span class=\""searchmatch\"">Jinzo</span> - Jektor Check translation&hellip;"" }, { ""id"": 516531, ""title"": ""Jinzo (later anime)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_(later_anime)"", ""ns"": 0, ""quality"": 87, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span>\"" <span class=\""searchmatch\"">Jinzo</span> Japanese: 人造人間-サイコ・ショッカー Romaji: Jinzōningen - Saiko Shokkā Translated: Android - Psycho Shocker Anime cards (Galleries&hellip;"" }, { ""id"": 504105, ""title"": ""Jinzo (anime)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_(anime)"", ""ns"": 0, ""quality"": 90, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span>\"" <span class=\""searchmatch\"">Jinzo</span> Japanese: 人造人間-サイコ・ショッカー Romaji: Jinzōningen - Saiko Shokkā Translated: Android - Psycho Shocker ja dub Anime cards&hellip;"" }, { ""id"": 6636, ""title"": ""Jinzo 7"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_7"", ""ns"": 0, ""quality"": 93, ""snippet"": ""<span class=\""searchmatch\"">Jinzo</span> #7 人(じん)造(ぞう)人(にん)間(げん)7号(ごう) English <span class=\""searchmatch\"">Jinzo</span> #7 Chinese 人造人7號 Check translation French <span class=\""searchmatch\"">Jinzo</span> N°7 Check translation German <span class=\""searchmatch\"">Jinzo</span> #7 Check&hellip;"" }, { ""id"": 58482, ""title"": ""Jinzo (DDM)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_(DDM)"", ""ns"": 0, ""quality"": 48, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span>\"" <span class=\""searchmatch\"">Jinzo</span> Japanese: 人造人間-サイコ・ショッカー Romaji: Jinzōningen - Saiko Shokkā Translated: Android - Psycho Shocker Dungeon Dice Monsters&hellip;"" }, { ""id"": 475724, ""title"": ""Jinzo (manga)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_(manga)"", ""ns"": 0, ""quality"": 86, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span>\"" <span class=\""searchmatch\"">Jinzo</span> Japanese: 人造人間-サイコ・ショッカー Romaji: Jinzōningen - Saiko Shokkā Translated: Android - Psycho Shocker ja color en ja Manga&hellip;"" }, { ""id"": 590258, ""title"": ""Jinzo (DBT)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_(DBT)"", ""ns"": 0, ""quality"": 79, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span>\"" <span class=\""searchmatch\"">Jinzo</span> Japanese: 人造人間-サイコ・ショッカー Romaji: Jinzōningen - Saiko Shokkā Translated: Android - Psycho Shocker #751: Gear Golem&hellip;"" }, { ""id"": 269088, ""title"": ""List of \""Jinzo\"" cards"", ""url"": ""http://yugioh.wikia.com/wiki/List_of_%22Jinzo%22_cards"", ""ns"": 0, ""quality"": 90, ""snippet"": ""Contents[show] This is a list of \""<span class=\""searchmatch\"">Jinzo</span>\"" cards. \""<span class=\""searchmatch\"">Jinzo</span>\"" is an archetype in the OCG/TCG, and a series in the anime. For a list of support cards&hellip;"" }, { ""id"": 159518, ""title"": ""Jinzo - Lord (character)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_-_Lord_(character)"", ""ns"": 0, ""quality"": 91, ""snippet"": ""<span class=\""searchmatch\"">Jinzo</span> - Lord, known as Android - Psycho Lord in the Japanese version, is a character version of the card, \""<span class=\""searchmatch\"">Jinzo</span> - Lord\"" and an upgraded version&hellip;"" }, { ""id"": 681777, ""title"": ""Jinzo (Tag Force)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_(Tag_Force)"", ""ns"": 0, ""quality"": 96, ""snippet"": ""<span class=\""searchmatch\"">Jinzo</span> Corresponding card <span class=\""searchmatch\"">Jinzo</span> English name <span class=\""searchmatch\"">Jinzo</span> Japanese translated Android - Psycho Shocker Japanese name 人(じん)造(ぞう)人(にん)間(げん) -サイコ・ショッカー 人造人間&hellip;"" }, { ""id"": 473848, ""title"": ""Jinzo (Duel Arena)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_(Duel_Arena)"", ""ns"": 0, ""quality"": 98, ""snippet"": ""<span class=\""searchmatch\"">Jinzo</span> Corresponding card <span class=\""searchmatch\"">Jinzo</span> English name <span class=\""searchmatch\"">Jinzo</span> Gender Male Duel Arena Decree of the <span class=\""searchmatch\"">Jinzo</span> Video game debut Yu-Gi-Oh! Duel Arena PC appearances Yu&hellip;"" }, { ""id"": 517640, ""title"": ""Jinzo - Returner (anime)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_-_Returner_(anime)"", ""ns"": 0, ""quality"": 84, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span> - Returner\"" <span class=\""searchmatch\"">Jinzo</span> - Returner Japanese: 人造人間-サイコ・リターナー Romaji: Jinzōningen - Saiko Ritānā Translated: Android - Psycho Returner&hellip;"" }, { ""id"": 517639, ""title"": ""Jinzo - Lord (anime)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_-_Lord_(anime)"", ""ns"": 0, ""quality"": 89, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span> - Lord\"" <span class=\""searchmatch\"">Jinzo</span> - Lord Japanese: 人造人間-サイコ・ロード Romaji: Jinzōningen - Saiko Rōdo Translated: Android - Psycho Lord Anime cards&hellip;"" }, { ""id"": 433572, ""title"": ""Jinzo - Lord (BAM)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_-_Lord_(BAM)"", ""ns"": 0, ""quality"": 50, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span> - Lord\"" <span class=\""searchmatch\"">Jinzo</span> - Lord Yu-Gi-Oh! BAM cards Attribute DARK Type Machine / Effect Level 11 Power/Life Points 3000 / 500 SPECIAL&hellip;"" }, { ""id"": 447061, ""title"": ""Jinzo 7 (FMR)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_7_(FMR)"", ""ns"": 0, ""quality"": 37, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span> 7\"" <span class=\""searchmatch\"">Jinzo</span> #7 人造人間7号 Japanese: 人造人間7号 Romaji: Jinzōningen Nana-gō Translated: Android No.7 #421: Cyber Commander #423: Dice&hellip;"" }, { ""id"": 438468, ""title"": ""Jinzo 7 (DOR)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_7_(DOR)"", ""ns"": 0, ""quality"": 42, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span> 7\"" <span class=\""searchmatch\"">Jinzo</span> #7 人(じん)造(ぞう)人(にん)間(げん)7号(ごう) Japanese: 人造人間7号 Romaji: Jinzōningen Nana-gō Translated: Android No.7 #496: Cyber&hellip;"" }, { ""id"": 588590, ""title"": ""Jinzo 7 (DBT)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_7_(DBT)"", ""ns"": 0, ""quality"": 70, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span> 7\"" <span class=\""searchmatch\"">Jinzo</span> #7 Japanese: 人造人間7号 Romaji: Jinzōningen Nana-gō Translated: Android No.7 #421: Cyber Commander #423: Dice Armadillo&hellip;"" }, { ""id"": 595607, ""title"": ""Jinzo (DDM video game)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_(DDM_video_game)"", ""ns"": 0, ""quality"": 73, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span>\"" <span class=\""searchmatch\"">Jinzo</span> Japanese: 人造人間-サイコ・ショッカー Kana: じんぞうにんげん-サイコ・ショッカー Romaji: Jinzōningen - Saiko Shokkā Translated: Android - Psycho&hellip;"" }, { ""id"": 661419, ""title"": ""Jinzo 7 (DM2)"", ""url"": ""http://yugioh.wikia.com/wiki/Jinzo_7_(DM2)"", ""ns"": 0, ""quality"": 31, ""snippet"": ""Main card page: \""<span class=\""searchmatch\"">Jinzo</span> 7\"" <span class=\""searchmatch\"">Jinzo</span> #7 Japanese: じんぞうにんげん7ごう Romaji: Jinzōningen Nana-gō Translated: Android No.7 #421: Cyber Commander #423: Dice&hellip;"" } ] }");

            // Act
            var result = await _sut.SuggestedPhrases(query);

            // Assert
            result.Items.Should().NotBeEmpty();
        }
Exemplo n.º 7
0
        public async Task <NavigationResultSet> NavigationLinks()
        {
            var requestUrl = UrlHelper.GenerateUrl(_wikiApiUrl, NavigationLinksEndpoint);
            var json       = await _wikiaHttpClient.GetString(requestUrl);

            return(JsonHelper.Deserialize <NavigationResultSet>(json));
        }
Exemplo n.º 8
0
        public async Task <WikiDataContainer> WikiVariables()
        {
            var requestUrl = UrlHelper.GenerateUrl(_wikiApiUrl, WikiVariablesUrl);
            var json       = await _wikiaHttpClient.GetString(requestUrl);

            return(JsonHelper.Deserialize <WikiDataContainer>(json));
        }
Exemplo n.º 9
0
        public Task <string> ArticleRequest(ArticleEndpoint endpoint, Func <IDictionary <string, string> > getParameters)
        {
            var requestUrl = UrlHelper.GenerateUrl(_wikiApiUrl, Endpoints[endpoint]);
            var parameters = getParameters.Invoke();

            return(_wikiaHttpClient.GetString(requestUrl, parameters));
        }
Exemplo n.º 10
0
        public async Task Given_A_PopularArticleRequestParameters_Should_Return_Popular_Articles()
        {
            // Arrange
            _wikiaHttpClient.GetString(Arg.Any <string>(), Arg.Any <Dictionary <string, string> >()).Returns(@"{ ""items"": [ { ""id"": 79895, ""title"": ""Stardust Dragon"", ""url"": ""/wiki/Stardust_Dragon"" } ], ""basepath"": ""https://yugioh.fandom.com"" }");

            // Act
            var result = await _sut.PopularArticle <PopularListArticleResultSet>(new PopularArticleRequestParameters(), false);

            // Assert
            result.Items.Should().NotBeEmpty();
        }
Exemplo n.º 11
0
        public async Task Given_An_ArticleListRequestParameters_The_Response_Items_Collection_Should_Not_Be_Empty()
        {
            // Arrange
            _wikiaHttpClient.GetString(Arg.Any <string>(), Arg.Any <Dictionary <string, string> >()).Returns(@"{ ""items"": [ { ""id"": 30438, ""title"": ""\""A\"" Cell Breeding Device"", ""url"": ""/wiki/%22A%22_Cell_Breeding_Device"", ""ns"": 0 }, { ""id"": 239034, ""title"": ""\""A\"" Cell Culture Device"", ""url"": ""/wiki/%22A%22_Cell_Culture_Device"", ""ns"": 0 }, { ""id"": 239035, ""title"": ""\""A\"" Cell Dissemination Bomb"", ""url"": ""/wiki/%22A%22_Cell_Dissemination_Bomb"", ""ns"": 0 }, { ""id"": 48321, ""title"": ""\""A\"" Cell Incubator"", ""url"": ""/wiki/%22A%22_Cell_Incubator"", ""ns"": 0 }, { ""id"": 239033, ""title"": ""\""A\"" Cell Proliferation Device"", ""url"": ""/wiki/%22A%22_Cell_Proliferation_Device"", ""ns"": 0 }, { ""id"": 579181, ""title"": ""\""A\"" Cell Recombination Device"", ""url"": ""/wiki/%22A%22_Cell_Recombination_Device"", ""ns"": 0 }, { ""id"": 615528, ""title"": ""\""A\"" Cell Recomposition Device"", ""url"": ""/wiki/%22A%22_Cell_Recomposition_Device"", ""ns"": 0 }, { ""id"": 32484, ""title"": ""\""A\"" Cell Scatter Burst"", ""url"": ""/wiki/%22A%22_Cell_Scatter_Burst"", ""ns"": 0 }, { ""id"": 396513, ""title"": ""\""A Legendary Ocean\"""", ""url"": ""/wiki/%22A_Legendary_Ocean%22"", ""ns"": 0 }, { ""id"": 396487, ""title"": ""\""Backup Soldier\"""", ""url"": ""/wiki/%22Backup_Soldier%22"", ""ns"": 0 }, { ""id"": 396489, ""title"": ""\""Blade Knight\"""", ""url"": ""/wiki/%22Blade_Knight%22"", ""ns"": 0 }, { ""id"": 396547, ""title"": ""\""Bottomless Trap Hole\"""", ""url"": ""/wiki/%22Bottomless_Trap_Hole%22"", ""ns"": 0 }, { ""id"": 406226, ""title"": ""\""C\"""", ""url"": ""/wiki/%22C%22"", ""ns"": 0 }, { ""id"": 691243, ""title"": ""\""C\"" Ranger Shine Black"", ""url"": ""/wiki/%22C%22_Ranger_Shine_Black"", ""ns"": 0 }, { ""id"": 396370, ""title"": ""\""Call of the Haunted\"" + \""Jinzo\"""", ""url"": ""/wiki/%22Call_of_the_Haunted%22_%2B_%22Jinzo%22"", ""ns"": 0 }, { ""id"": 396481, ""title"": ""\""Ceasefire\"""", ""url"": ""/wiki/%22Ceasefire%22"", ""ns"": 0 }, { ""id"": 90720, ""title"": ""\""Command Knight\"""", ""url"": ""/wiki/%22Command_Knight%22"", ""ns"": 0 }, { ""id"": 397105, ""title"": ""\""Curse of Anubis\"""", ""url"": ""/wiki/%22Curse_of_Anubis%22"", ""ns"": 0 }, { ""id"": 397991, ""title"": ""\""Cyber Dragon\"" Fusion program"", ""url"": ""/wiki/%22Cyber_Dragon%22_Fusion_program"", ""ns"": 0 }, { ""id"": 396452, ""title"": ""\""Dark Hole\"""", ""url"": ""/wiki/%22Dark_Hole%22"", ""ns"": 0 }, { ""id"": 396993, ""title"": ""\""Dark Magician of Chaos\"""", ""url"": ""/wiki/%22Dark_Magician_of_Chaos%22"", ""ns"": 0 }, { ""id"": 396527, ""title"": ""\""Dark Necrofear\"""", ""url"": ""/wiki/%22Dark_Necrofear%22"", ""ns"": 0 }, { ""id"": 396588, ""title"": ""\""Destiny Board\"""", ""url"": ""/wiki/%22Destiny_Board%22"", ""ns"": 0 }, { ""id"": 397103, ""title"": ""\""Dimension Fusion\"""", ""url"": ""/wiki/%22Dimension_Fusion%22"", ""ns"": 0 }, { ""id"": 396416, ""title"": ""\""Dust Tornado\"""", ""url"": ""/wiki/%22Dust_Tornado%22"", ""ns"": 0 } ], ""basepath"": ""https://yugioh.fandom.com"", ""offset"": ""\""Elemental HERO Sparkman's\"" arsenal"" }");

            // Act
            var result = await _sut.ArticleList <UnexpandedListArticleResultSet>(new ArticleListRequestParameters { Category = "Card_Tips" }, false);

            // Assert
            result.Items.Should().NotBeEmpty();
        }
Exemplo n.º 12
0
        public async Task Given_An_NewArticleResultSet_Should_Return_New_Articles()
        {
            // Arrange
            _wikiaHttpClient.GetString(Arg.Any <string>(), Arg.Any <Dictionary <string, string> >()).Returns(@"{ ""items"": [ { ""id"": 704382, ""ns"": 0, ""title"": ""Gouki Cage Match"", ""abstract"": ""Gouki Cage Match 剛(ごう)鬼(き)死闘(デスマッチ) English Gouki Cage Match Japanese (kana) ごうきデスマッチ Check translation Japanese (base) 剛鬼死闘 Check translation Japanese (rōmaji) Gōki Desumacchi..."", ""quality"": 81, ""url"": ""/wiki/Gouki_Cage_Match"", ""creator"": { ""avatar"": null, ""name"": null }, ""creation_date"": null, ""thumbnail"": null, ""original_dimensions"": null } ], ""basepath"": ""https://yugioh.fandom.com"" }");

            // Act
            var result = await _sut.NewArticles();

            // Assert
            result.Items.Should().NotBeEmpty();
        }
Exemplo n.º 13
0
        public async Task<SearchSuggestionsPhrases> SuggestedPhrases(string query)
        {
            if (string.IsNullOrWhiteSpace(query))
                throw new ArgumentException("Search suggestion query required.", nameof(query));

            var requestUrl = UrlHelper.GenerateUrl(_wikiApiUrl, SearchSuggestionsUrlSegment);
            var parameters = new Dictionary<string, string> { ["query"] = query };
            var json = await _wikiaHttpClient.GetString(requestUrl, parameters);

            return JsonHelper.Deserialize<SearchSuggestionsPhrases>(json);
        }
Exemplo n.º 14
0
        public async Task <LocalWikiSearchResultSet> SearchList(SearchListRequestParameter requestParameters)
        {
            if (requestParameters == null)
            {
                throw new ArgumentNullException(nameof(requestParameters));
            }

            var requestUrl = UrlHelper.GenerateUrl(_wikiApiUrl, SearchListUrlSegment);
            var parameters = GetSearchListParameters(requestParameters);
            var json       = await _wikiaHttpClient.GetString(requestUrl, parameters);

            return(JsonHelper.Deserialize <LocalWikiSearchResultSet>(json));
        }
Exemplo n.º 15
0
        public async Task <ActivityResponseResult> ActivityRequest(ActivityEndpoint endpoint, ActivityRequestParameters requestParameters)
        {
            if (requestParameters == null)
            {
                throw new ArgumentNullException(nameof(requestParameters));
            }

            var requestUrl = UrlHelper.GenerateUrl(_wikiApiUrl, Endpoints[endpoint]);
            var parameters = ArticleHelper.GetActivityParameters(requestParameters);
            var json       = await _wikiaHttpClient.GetString(requestUrl, parameters);

            return(JsonHelper.Deserialize <ActivityResponseResult>(json));
        }
Exemplo n.º 16
0
        public async Task Given_An_ArticleDetailsRequestParameters_The_Response_Items_Collection_Should_Contain_Id_Key()
        {
            // Arrange
            const string expected = "50";

            const int ids = 50;

            _wikiaHttpClient.GetString(Arg.Any <string>(), Arg.Any <Dictionary <string, string> >()).Returns(@"{ ""items"": { ""50"": { ""id"": 50, ""title"": ""Solemn Wishes"", ""ns"": 0, ""url"": ""/wiki/Solemn_Wishes"", ""revision"": { ""id"": 3917607, ""user"": ""Zustel"", ""user_id"": 27521587, ""timestamp"": ""1515150643"" }, ""type"": ""article"", ""abstract"": ""Solemn Wishes 神(かみ)の恵(めぐ)み English Solemn Wishes Chinese 神之恩惠 Check translation French Vœux..."", ""thumbnail"": ""https://vignette.wikia.nocookie.net/yugioh/images/d/d7/SolemnWishes-DB1-EN-C-UE.png/revision/latest/window-crop/width/200/x-offset/0/y-offset/0/window-width/558/window-height/558?cb=20171030173518"", ""original_dimensions"": { ""width"": 558, ""height"": 814 } } }, ""basepath"": ""https://yugioh.fandom.com"" }");

            // Act
            var result = await _sut.Details(ids);

            // Assert
            result.Items.Should().ContainKey(expected);
        }
Exemplo n.º 17
0
        public async Task <RelatedPages> Articles(RelatedArticlesRequestParameters requestParameters)
        {
            if (requestParameters == null)
            {
                throw new ArgumentNullException(nameof(requestParameters));
            }

            if (requestParameters.Ids == null || !requestParameters.Ids.Any())
            {
                throw new ArgumentException("Article Id(s) required.", nameof(requestParameters.Ids));
            }

            var requestUrl = UrlHelper.GenerateUrl(_wikiApiUrl, RelatedPagesUrlSegment);
            var parameters = GetArticlesParameters(requestParameters);
            var json       = await _wikiaHttpClient.GetString(requestUrl, parameters);

            return(JsonHelper.Deserialize <RelatedPages>(json));
        }