Exemplo n.º 1
0
        public void GivenEmptyQueryResult_WhenTrackEventIsInvoked_ThenExceptionIsBeingThrown(
            IMessageActivity activity,
            InstrumentationSettings settings)
        {
            // Arrange
            var instrumentation = new QnAInstrumentation(this.telemetryClient, settings);
            const QueryResult emptyQueryResult = null;

            // Act
            // Assert
            Assert.Throws <ArgumentNullException>(() => instrumentation.TrackEvent(activity, emptyQueryResult));
        }
Exemplo n.º 2
0
        public void GIVENEmptyActivity_WHENTrackEventIsInvoked_THENExceptionIsBeingThrown(
            QueryResult queryResult,
            InstrumentationSettings settings)
        {
            // Arrange
            var instrumentation = new QnAInstrumentation(this.telemetryClient, settings);
            const IMessageActivity emptyActivity = null;

            // Act
            // Assert
            Assert.Throws <ArgumentNullException>(() => instrumentation.TrackEvent(emptyActivity, queryResult));
        }
Exemplo n.º 3
0
        public void GivenAnyActivity_WhenTrackEventIsInvoked_ThenEventTelemetryIsBeingSent(
            IMessageActivity activity,
            QueryResult queryResult,
            InstrumentationSettings settings)
        {
            // Arrange
            var instrumentation = new QnAInstrumentation(this.telemetryClient, settings);

            // Act
            instrumentation.TrackEvent(activity, queryResult);

            // Assert
            this.mockTelemetryChannel.Verify(
                tc => tc.Send(It.Is <EventTelemetry>(t =>
                                                     t.Name == EventTypes.QnaEvent &&
                                                     t.Properties[QnAConstants.UserQuery] == activity.Text &&
                                                     t.Properties[QnAConstants.KnowledgeBaseQuestion] == string.Join(QnAInstrumentation.QuestionsSeparator, queryResult.Questions) &&
                                                     t.Properties[QnAConstants.KnowledgeBaseAnswer] == queryResult.Answer &&
                                                     t.Properties[QnAConstants.Score] == queryResult.Score.ToString(CultureInfo.InvariantCulture))),
                Times.Once);
        }
Exemplo n.º 4
0
        public void GIVENAnyActivity_WHENTrackEventIsInvoked_THENEventTelemetryIsBeingSent(
            IMessageActivity activity,
            InstrumentationSettings settings)
        {
            // Arrange
            var             instrumentation = new QnAInstrumentation(this.telemetryClient, settings);
            QnAMakerResults queryResult     = new QnAMakerResults
            {
                Answers = new List <QnAMakerResult>
                {
                    new QnAMakerResult
                    {
                        Score     = .5,
                        Questions = new List <string>
                        {
                            "good",
                            "bad",
                        },
                        Answer = "good",
                    },
                },
            };

            // Act
            instrumentation.TrackEvent(activity, queryResult);

            // Assert
            this.mockTelemetryChannel.Verify(
                tc => tc.Send(It.Is <EventTelemetry>(t =>
                                                     t.Name == EventTypes.QnaEvent &&
                                                     t.Properties[QnAConstants.UserQuery] == activity.AsMessageActivity().Text&&
                                                     t.Properties[QnAConstants.KnowledgeBaseQuestion] == string.Join(QuestionsSeparator.Separator, queryResult.Answers.First().Questions) &&
                                                     t.Properties[QnAConstants.KnowledgeBaseAnswer] == queryResult.Answers.First().Answer&&
                                                     t.Properties[QnAConstants.Score] == queryResult.Answers.First().Score.ToString(CultureInfo.InvariantCulture))),
                Times.Once);
        }