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); }
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); }
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); }
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(); } }