Example #1
0
        /// <summary>
        /// Communicate with Python web server via API.
        /// </summary>
        /// <param name="request">Text to analyze</param>
        /// <returns></returns>
        public LexisAnalysisResponse GetEmotions(LexisAnalysisRequest request)
        {
            try
            {
                var client      = new RestClient(LexisServerApiUrl);
                var restRequest = new RestRequest("", Method.POST);

                DefaultContractResolver contractResolver = new DefaultContractResolver
                {
                    NamingStrategy = new CamelCaseNamingStrategy()
                };
                restRequest.AddParameter("application/json", JsonConvert.SerializeObject(request,
                                                                                         new JsonSerializerSettings()
                {
                    ContractResolver = contractResolver
                }),
                                         ParameterType.RequestBody);

                var response = client.Execute(restRequest);
                if (response.IsSuccessful)
                {
                    var resp = JsonConvert.DeserializeObject <LexisAnalysisResponse>(response.Content);
                    return(resp);
                }

                throw new Exception($"Request was failed with code: {response.StatusCode}, message: {response.Content}");
            }
            catch (Exception ex)
            {
                throw new Exception("Failed to get emotions from server", ex);
            }
        }
Example #2
0
        public void IncompleteContent(string text, string feeling)
        {
            var service = Substitute.For <TextAnalysisService>();

            service.LexisServerApiUrl.Returns("http://localhost:8080/api/predict");
            var request = new LexisAnalysisRequest()
            {
                Input = text
            };
            var response = service.GetEmotions(request);

            Assert.AreEqual(feeling, response.Response.Feeling);
        }