Exemplo n.º 1
0
        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);
        }
Exemplo n.º 4
0
        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));
        }