public async void ItGetsUserAgentInfo() { // Arrange var expectation = new Regex("{\"userAgent\":\"Microsoft-BotFramework\\/[0-9.]+\\s.*BotBuilder\\/[0-9.]+\\s+\\(.*\\)\".*}"); // Act var handler = new StreamingRequestHandler(new MockBot(), new BotFrameworkHttpAdapter(), Guid.NewGuid().ToString()); var activity = new Schema.Activity() { Type = "message", Text = "received from bot", From = new Schema.ChannelAccount() { Id = "bot", Name = "bot", }, Conversation = new Schema.ConversationAccount(null, null, Guid.NewGuid().ToString(), null, null, null, null), }; var payload = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(activity, SerializationSettings.DefaultDeserializationSettings))); var fakeContentStreamId = Guid.NewGuid(); var fakeContentStream = new FakeContentStream(fakeContentStreamId, "application/json", payload); var testRequest = new ReceiveRequest(); testRequest.Path = "/api/version"; testRequest.Verb = "GET"; testRequest.Streams.Add(fakeContentStream); var response = await handler.ProcessRequestAsync(testRequest); // Assert Assert.Matches(expectation, response.Streams[0].Content.ReadAsStringAsync().Result); }
public async Task ItGetsUserAgentInfo() { // Arrange // Act var handler = new StreamingRequestHandler(new MockBot(), new BotFrameworkHttpAdapter(), "fakePipe"); var activity = new Schema.Activity() { Type = "message", Text = "received from bot", From = new Schema.ChannelAccount() { Id = "bot", Name = "bot", }, Conversation = new Schema.ConversationAccount(null, null, "testconvoid", null, null, null, null), }; var payload = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(activity, SerializationSettings.DefaultDeserializationSettings))); var fakeContentStreamId = Guid.NewGuid(); var fakeContentStream = new FakeContentStream(fakeContentStreamId, "application/json", payload); var testRequest = new ReceiveRequest(); testRequest.Path = "/api/version"; testRequest.Verb = "GET"; testRequest.Streams.Add(fakeContentStream); var response = await handler.ProcessRequestAsync(testRequest); // Assert Assert.NotNull(response); }
public async void DoesNotThrowExceptionIfReceiveRequestHasNoActivity() { // Arrange var handler = new StreamingRequestHandler(new MockBot(), new BotFrameworkHttpAdapter(), Guid.NewGuid().ToString()); var payload = new MemoryStream(); var fakeContentStreamId = Guid.NewGuid(); var fakeContentStream = new FakeContentStream(fakeContentStreamId, "application/json", payload); var testRequest = new ReceiveRequest { Verb = "POST", }; testRequest.Streams.Add(fakeContentStream); // Act var response = await handler.ProcessRequestAsync(testRequest); // Assert Assert.Equal(400, response.StatusCode); }
public async void RequestHandlerAssignsAServiceUrl() { // Arrange var handler = new StreamingRequestHandler(new MockBot(), new BotFrameworkHttpAdapter(), Guid.NewGuid().ToString()); var conversationId = Guid.NewGuid().ToString(); var serviceUrl = "urn:FakeName:fakeProtocol://fakePath"; var membersAdded = new List <ChannelAccount>(); var member = new ChannelAccount { Id = "123", Name = "bot", }; membersAdded.Add(member); var activity = new Activity() { ServiceUrl = serviceUrl, Type = "conversationUpdate", MembersAdded = membersAdded, Conversation = new ConversationAccount(null, null, conversationId, null, null, null, null), }; var payload = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(activity, SerializationSettings.DefaultDeserializationSettings))); var fakeContentStreamId = Guid.NewGuid(); var fakeContentStream = new FakeContentStream(fakeContentStreamId, "application/json", payload); var testRequest = new ReceiveRequest { Path = $"/v3/conversations/{activity.Conversation?.Id}/activities/{activity.Id}", Verb = "POST", }; testRequest.Streams.Add(fakeContentStream); // Act _ = await handler.ProcessRequestAsync(testRequest); // Assert Assert.Equal(serviceUrl, handler.ServiceUrl); }
public async Task RequestHandlerForgetsConversations() { // Arrange var handler = new StreamingRequestHandler(new MockBot(), new BotFrameworkHttpAdapter(), "fakePipe"); var conversationId = "testconvoid"; var membersAdded = new List <ChannelAccount>(); var member = new ChannelAccount { Id = "123", Name = "bot", }; membersAdded.Add(member); var activity = new Activity() { Type = "conversationUpdate", MembersAdded = membersAdded, Conversation = new ConversationAccount(null, null, conversationId, null, null, null, null), }; var payload = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(activity, SerializationSettings.DefaultDeserializationSettings))); var fakeContentStreamId = Guid.NewGuid(); var fakeContentStream = new FakeContentStream(fakeContentStreamId, "application/json", payload); var testRequest = new ReceiveRequest { Path = $"/v3/conversations/{activity.Conversation?.Id}/activities/{activity.Id}", Verb = "POST", }; testRequest.Streams.Add(fakeContentStream); // Act _ = await handler.ProcessRequestAsync(testRequest); handler.ForgetConversation(conversationId); // Assert Assert.False(handler.HasConversation(conversationId)); }