private IResponseContext ParseResponse(HTTPAPIResponse response) { TextResponseDataModel responseDataModel = new TextResponseDataModel(); if (response.Code != ErrorCodes.NoError) { responseDataModel.NewsItems = new ObservableCollection <Articles>(); responseDataModel.Status = "Error in receiving response from server"; return(responseDataModel);//in case of exception, list wil be empty } try { //TODO: Add sample response here var apiResponseJson = JsonConvert.DeserializeObject <NewsApiResponse>(response.ResponseString); ObservableCollection <Articles> articleCol = new ObservableCollection <Articles>(); foreach (Articles article in apiResponseJson.Articles) { articleCol.Add(article); } responseDataModel.NewsItems = articleCol; responseDataModel.Status = "Parsed response successfully"; } catch (Exception exp) { Logger.Log("Exception while parsing response from NewsAPI. Details:" + exp); responseDataModel.NewsItems = new ObservableCollection <Articles>(); responseDataModel.Status = "Error in parsing response from server"; //in case of exception list wil be empty } return(responseDataModel); }
public async Task Test_NewsAPISearchComponent_Negative() { IQueryContext qc = new QueryContext(); qc.QueryParam = "Nature"; qc.ApplicationConfiguration = new ApplicationConfiguration(); IDataSource data = qc.ApplicationConfiguration.GetDataSource(DataSources.NewsAPI); ISearchComponent SearchComponent = new NewsAPISearchhComponent(new MockHTTPAPIHelper("Test_FlickerSearchComponent_Negative")); IResponseContext rc = await SearchComponent.PerformSearch(qc); TextResponseDataModel responseModel = rc as TextResponseDataModel; Assert.IsNotNull(responseModel); Assert.AreEqual(responseModel.NewsItems.Count, 0); Assert.IsNotNull(rc.Status); }