diff --git a/libraries/bot-builder/src/main/java/com/microsoft/bot/builder/BotFrameworkAdapter.java b/libraries/bot-builder/src/main/java/com/microsoft/bot/builder/BotFrameworkAdapter.java index fffef0b33..e3aa09a72 100644 --- a/libraries/bot-builder/src/main/java/com/microsoft/bot/builder/BotFrameworkAdapter.java +++ b/libraries/bot-builder/src/main/java/com/microsoft/bot/builder/BotFrameworkAdapter.java @@ -31,6 +31,7 @@ import com.microsoft.bot.connector.rest.RestOAuthClient; import com.microsoft.bot.schema.AadResourceUrls; import com.microsoft.bot.schema.Activity; +import com.microsoft.bot.schema.ActivityEventNames; import com.microsoft.bot.schema.ActivityTypes; import com.microsoft.bot.schema.CallerIdConstants; import com.microsoft.bot.schema.ChannelAccount; @@ -1040,7 +1041,7 @@ public CompletableFuture createConversation( .thenCompose(conversationResourceResponse -> { // Create a event activity to represent the result. Activity eventActivity = Activity.createEventActivity(); - eventActivity.setName("CreateConversation"); + eventActivity.setName(ActivityEventNames.CREATE_CONVERSATION); eventActivity.setChannelId(channelId); eventActivity.setServiceUrl(serviceUrl); eventActivity.setId( diff --git a/libraries/bot-builder/src/test/java/com/microsoft/bot/builder/BotFrameworkAdapterTests.java b/libraries/bot-builder/src/test/java/com/microsoft/bot/builder/BotFrameworkAdapterTests.java index 58a72a3e7..d8772559f 100644 --- a/libraries/bot-builder/src/test/java/com/microsoft/bot/builder/BotFrameworkAdapterTests.java +++ b/libraries/bot-builder/src/test/java/com/microsoft/bot/builder/BotFrameworkAdapterTests.java @@ -7,6 +7,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.fasterxml.jackson.databind.node.ObjectNode; +import com.microsoft.bot.builder.adapters.TestAdapter; +import com.microsoft.bot.builder.adapters.TestFlow; import com.microsoft.bot.connector.Channels; import com.microsoft.bot.connector.ConnectorClient; import com.microsoft.bot.connector.Conversations; @@ -19,6 +21,7 @@ import com.microsoft.bot.connector.authentication.SimpleChannelProvider; import com.microsoft.bot.connector.authentication.SimpleCredentialProvider; import com.microsoft.bot.schema.Activity; +import com.microsoft.bot.schema.ActivityEventNames; import com.microsoft.bot.schema.ActivityTypes; import com.microsoft.bot.schema.CallerIdConstants; import com.microsoft.bot.schema.ConversationAccount; @@ -32,6 +35,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; +import org.apache.commons.lang3.StringUtils; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -66,7 +71,7 @@ public void CreateConversationOverloadProperlySetsTenantId() { final String ActivityIdValue = "SendActivityId"; final String ConversationIdValue = "NewConversationId"; final String TenantIdValue = "theTenantId"; - final String EventActivityName = "CreateConversation"; + final String EventActivityName = ActivityEventNames.CREATE_CONVERSATION; // so we can provide a mock ConnectorClient. class TestBotFrameworkAdapter extends BotFrameworkAdapter { @@ -319,6 +324,39 @@ private void processActivityCreatesCorrectCredsAndClient( }, callback).join(); } + @Test + public void ShouldNotLogContinueConversation() { + TranscriptStore transcriptStore = new MemoryTranscriptStore(); + TranscriptLoggerMiddleware sut = new TranscriptLoggerMiddleware(transcriptStore); + + String conversationId = UUID.randomUUID().toString(); + TestAdapter adapter = new TestAdapter(TestAdapter.createConversationReference(conversationId, "User1", "Bot")) + .use(sut); + + Activity continueConversation = new Activity(ActivityTypes.EVENT); + continueConversation.setName(ActivityEventNames.CONTINUE_CONVERSATION); + + new TestFlow(adapter, turnContext -> { + return turnContext.sendActivity("bar").thenApply(resourceResponse -> null); + }) + .send("foo") + .assertReply(activity -> { + Assert.assertEquals("bar", activity.getText()); + PagedResult activities = transcriptStore.getTranscriptActivities(activity.getChannelId(), conversationId).join(); + Assert.assertEquals(2, activities.getItems().size()); + }) + .send(continueConversation) + .assertReply(activity -> { + // Ensure the event hasn't been added to the transcript. + PagedResult activities = transcriptStore.getTranscriptActivities(activity.getChannelId(), conversationId).join(); + + Assert.assertFalse(activities.getItems().stream().anyMatch(a -> a.isType(ActivityTypes.EVENT) && StringUtils + .equals(a.getName(), ActivityEventNames.CONTINUE_CONVERSATION))); + Assert.assertEquals(3, activities.getItems().size()); + }) + .startTest().join(); + } + private static void getAppCredentialsAndAssertValues( TurnContext turnContext, String expectedAppId, diff --git a/libraries/bot-connector/src/main/java/com/microsoft/bot/connector/rest/RestAttachments.java b/libraries/bot-connector/src/main/java/com/microsoft/bot/connector/rest/RestAttachments.java index e8705ac53..7fbc2d006 100644 --- a/libraries/bot-connector/src/main/java/com/microsoft/bot/connector/rest/RestAttachments.java +++ b/libraries/bot-connector/src/main/java/com/microsoft/bot/connector/rest/RestAttachments.java @@ -100,7 +100,7 @@ public CompletableFuture getAttachmentInfo(String attachmentId) } catch (ErrorResponseException e) { throw e; } catch (Throwable t) { - throw new ErrorResponseException("getAttachmentInfoAsync", responseBodyResponse); + throw new ErrorResponseException("getAttachmentInfo", responseBodyResponse); } }); } @@ -146,7 +146,7 @@ public CompletableFuture getAttachment(String attachmentId, String } catch (ErrorResponseException e) { throw e; } catch (Throwable t) { - throw new ErrorResponseException("getAttachmentAsync", responseBodyResponse); + throw new ErrorResponseException("getAttachment", responseBodyResponse); } }); } diff --git a/libraries/bot-connector/src/main/java/com/microsoft/bot/connector/rest/RestConversations.java b/libraries/bot-connector/src/main/java/com/microsoft/bot/connector/rest/RestConversations.java index 14600a500..aea20187c 100644 --- a/libraries/bot-connector/src/main/java/com/microsoft/bot/connector/rest/RestConversations.java +++ b/libraries/bot-connector/src/main/java/com/microsoft/bot/connector/rest/RestConversations.java @@ -236,7 +236,7 @@ public CompletableFuture getConversations(String continuati } catch (ErrorResponseException e) { throw e; } catch (Throwable t) { - throw new ErrorResponseException("getConversationsAsync", responseBodyResponse); + throw new ErrorResponseException("getConversations", responseBodyResponse); } }); } @@ -279,7 +279,7 @@ public CompletableFuture createConversation( throw e; } catch (Throwable t) { throw new ErrorResponseException( - "createConversationAsync", + "createConversation", responseBodyResponse ); } @@ -339,7 +339,7 @@ public CompletableFuture sendToConversation( } catch (ErrorResponseException e) { throw e; } catch (Throwable t) { - throw new ErrorResponseException("sendToConversationAsync", responseBodyResponse); + throw new ErrorResponseException("sendToConversation", responseBodyResponse); } }); } @@ -402,7 +402,7 @@ public CompletableFuture updateActivity( throw e; } catch (Throwable t) { throw new ErrorResponseException( - "updateActivityAsync", responseBodyResponse); + "updateActivity", responseBodyResponse); } }); }); @@ -463,7 +463,7 @@ public CompletableFuture replyToActivity( } catch (ErrorResponseException e) { throw e; } catch (Throwable t) { - throw new ErrorResponseException("replyToActivityAsync", responseBodyResponse); + throw new ErrorResponseException("replyToActivity", responseBodyResponse); } }); } @@ -511,7 +511,7 @@ public CompletableFuture deleteActivity(String conversationId, String acti } catch (ErrorResponseException e) { throw e; } catch (Throwable t) { - throw new ErrorResponseException("deleteActivityAsync", responseBodyResponse); + throw new ErrorResponseException("deleteActivity", responseBodyResponse); } }); } @@ -553,7 +553,7 @@ public CompletableFuture> getConversationMembers(String con throw e; } catch (Throwable t) { throw new ErrorResponseException( - "getConversationMembersAsync", + "getConversationMembers", responseBodyResponse ); } @@ -603,7 +603,7 @@ public CompletableFuture getConversationMember( throw e; } catch (Throwable t) { throw new ErrorResponseException( - "getConversationMembersAsync", + "getConversationMember", responseBodyResponse ); } @@ -656,7 +656,7 @@ public CompletableFuture deleteConversationMember( throw e; } catch (Throwable t) { throw new ErrorResponseException( - "deleteConversationMemberAsync", + "deleteConversationMember", responseBodyResponse ); } @@ -707,7 +707,7 @@ public CompletableFuture> getActivityMembers( } catch (ErrorResponseException e) { throw e; } catch (Throwable t) { - throw new ErrorResponseException("getActivityMembersAsync", responseBodyResponse); + throw new ErrorResponseException("getActivityMembers", responseBodyResponse); } }); } @@ -757,7 +757,7 @@ public CompletableFuture uploadAttachment( } catch (ErrorResponseException e) { throw e; } catch (Throwable t) { - throw new ErrorResponseException("uploadAttachmentAsync", responseBodyResponse); + throw new ErrorResponseException("uploadAttachment", responseBodyResponse); } }); } @@ -812,7 +812,7 @@ public CompletableFuture sendConversationHistory( throw e; } catch (Throwable t) { throw new ErrorResponseException( - "sendConversationHistoryAsync", + "sendConversationHistory", responseBodyResponse ); } diff --git a/libraries/bot-schema/src/main/java/com/microsoft/bot/schema/ConversationReference.java b/libraries/bot-schema/src/main/java/com/microsoft/bot/schema/ConversationReference.java index bd6d59e3f..e67a97ff9 100644 --- a/libraries/bot-schema/src/main/java/com/microsoft/bot/schema/ConversationReference.java +++ b/libraries/bot-schema/src/main/java/com/microsoft/bot/schema/ConversationReference.java @@ -73,7 +73,7 @@ public static ConversationReference clone(ConversationReference conversationRefe @JsonIgnore public Activity getContinuationActivity() { Activity activity = Activity.createEventActivity(); - activity.setName("ContinueConversation"); + activity.setName(ActivityEventNames.CONTINUE_CONVERSATION); activity.setId(UUID.randomUUID().toString()); activity.setChannelId(getChannelId()); activity.setConversation(getConversation());