Exemplo n.º 1
0
        public async Task GetByIdShouldReturnWikidata()
        {
            //ARRANGE
            var handlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict);

            handlerMock
            .Protected()
            // Setup the PROTECTED method to mock
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>()
                )
            // prepare the expected response of the mocked http call
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(jsonString),
            })
            .Verifiable();

            // use real http client with mocked handler here
            var httpClient = new HttpClient(handlerMock.Object)
            {
                BaseAddress = new Uri("http://test.com/"),
            };


            SerializerFactory serializerFactory = new SerializerFactory();

            WikidataClient wikidataClient = new WikidataClient(httpClient, serializerFactory);
            Wikidata       wikidata       = await wikidataClient.GetTitle("Q11649");

            Assert.Equal("Nirvana (band)", wikidata.Title);
        }
Exemplo n.º 2
0
        public void JsonStringShouldReturnTitle()
        {
            JsonTextReader reader = new JsonTextReader(new StringReader(jsonString));

            WikidataSerializer wikidataSerializer = new WikidataSerializer();
            Wikidata           wikidata           = wikidataSerializer.Deserialize(reader, "https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q11649&format=json&props=sitelinks");

            Assert.Equal("Nirvana (band)", wikidata.Title);
        }
Exemplo n.º 3
0
        private void ProcessResult(string property, string category, Wikidata result)
        {
            var documents = result.Results.Bindings.Select(r =>
            {
                var wikiresult      = r.ToDictionary(k => k.Key, k => k.Value.Value);
                var objectWikiName  = Uri.UnescapeDataString(wikiresult["objectWiki"].Split('/').Last());
                var subjectWikiName = Uri.UnescapeDataString(wikiresult["subjectWiki"].Split('/').Last());
                return(new Triplet
                {
                    Property = property,
                    Category = category,
                    SectionId = _id,
                    WikiResult = wikiresult,
                    ObjectWikiName = objectWikiName,
                    SubjectWikiName = subjectWikiName
                });
            });

            _io.SaveTriplets(documents);
        }
Exemplo n.º 4
0
        public async Task <Wikipedia> GetAsync(Musicbrainz musicbrainz)
        {
            string title = musicbrainz.WikipediaTitle;

            if (String.IsNullOrEmpty(title) && musicbrainz.WikidataId != null)
            {
                Wikidata wikidata = await _wikidata.GetTitle(musicbrainz.WikidataId);

                if (wikidata != null)
                {
                    title = wikidata.Title;
                }
            }

            if (!String.IsNullOrEmpty(title))
            {
                return(await getDescription(title));
            }
            else
            {
                throw new Exception();
            }
        }