public void GIVENAnyResult_WHENLuisResultAdapterIsInvoked_THENActivityIsMapped(LuisResult result)
        {
            // Arrange
            var adapter = new LuisResultAdapter(result);

            // Act
            var recognizedIntentResult = adapter.IntentResult;

            // Assert
            Assert.Equal(recognizedIntentResult.Intent, result.TopScoringIntent.Intent);
            Assert.Equal(recognizedIntentResult.Score, result.TopScoringIntent.Score.ToString());
            Assert.Equal(recognizedIntentResult.Entities, JsonConvert.SerializeObject(result.Entities));
        }
        public void TrackIntent(IActivity activity, LuisResult result)
        {
            if (activity == null)
            {
                throw new ArgumentNullException(nameof(activity));
            }

            if (result == null)
            {
                throw new ArgumentNullException(nameof(result));
            }

            var activityAdapter   = new ActivityAdapter(activity);
            var luisResultAdapter = new LuisResultAdapter(result);

            activityAdapter.TrackIntent(luisResultAdapter.IntentResult, this.telemetryClient, this.settings);
        }