Esempio n. 1
0
        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);
        }