Ejemplo n.º 1
0
        public async Task InterceptOnUpdate()
        {
            bool adapterCalled = false;

            void ValidateUpdate(Activity activity)
            {
                adapterCalled = true;
                Assert.Fail("Should not be called.");
            }

            SimpleAdapter a = new SimpleAdapter(ValidateUpdate);
            TurnContext   c = new TurnContext(a, new Activity());

            bool wasCalled = false;

            c.OnUpdateActivity(async(context, activity, next) =>
            {
                Assert.IsNotNull(activity, "Null activity passed in");
                wasCalled = true;
                // Do Not Call Next
                return(null);
            });

            await c.UpdateActivity(TestMessage.Message());

            Assert.IsTrue(wasCalled);      // Interceptor was called
            Assert.IsFalse(adapterCalled); // Adapter was not
        }
Ejemplo n.º 2
0
        public async Task InterceptAndMutateOnSend()
        {
            bool foundIt = false;

            void ValidateResponses(Activity[] activities)
            {
                Assert.IsNotNull(activities);
                Assert.IsTrue(activities.Length == 1);
                Assert.IsTrue(activities[0].Id == "changed");
                foundIt = true;
            }

            SimpleAdapter a = new SimpleAdapter(ValidateResponses);
            TurnContext   c = new TurnContext(a, new Activity());

            c.OnSendActivities(async(context, activities, next) =>
            {
                Assert.IsNotNull(activities, "Null Array passed in");
                Assert.IsTrue(activities.Count() == 1);
                Assert.IsTrue(activities[0].Id == "1234", "Unknown Id Passed In");
                activities[0].Id = "changed";
                return(await next());
            });

            await c.SendActivity(TestMessage.Message());

            // Intercepted the message, changed it, and sent it on to the Adapter
            Assert.IsTrue(foundIt);
        }
Ejemplo n.º 3
0
        public async Task CallOnUpdateBeforeDelivery()
        {
            bool foundActivity = false;

            void ValidateUpdate(Activity activity)
            {
                Assert.IsNotNull(activity);
                Assert.IsTrue(activity.Id == "1234");
                foundActivity = true;
            }

            SimpleAdapter a = new SimpleAdapter(ValidateUpdate);
            TurnContext   c = new TurnContext(a, new Activity());

            bool wasCalled = false;

            c.OnUpdateActivity(async(context, activity, next) =>
            {
                Assert.IsNotNull(activity, "Null activity passed in");
                wasCalled = true;
                return(await next());
            });
            await c.UpdateActivity(TestMessage.Message());

            Assert.IsTrue(wasCalled);
            Assert.IsTrue(foundActivity);
        }
Ejemplo n.º 4
0
        public async Task AllowInterceptionOfDeliveryOnSend()
        {
            bool responsesSent = false;

            void ValidateResponses(Activity[] activities)
            {
                responsesSent = true;
                Assert.Fail("Should not be called. Interceptor did not work");
            }

            SimpleAdapter a = new SimpleAdapter(ValidateResponses);
            TurnContext   c = new TurnContext(a, new Activity());

            int count = 0;

            c.OnSendActivities(async(context, activities, next) =>
            {
                Assert.IsNotNull(activities, "Null Array passed in");
                count = activities.Count();
                // Do not call next.
                return(null);
            });

            await c.SendActivity(TestMessage.Message());

            Assert.IsTrue(count == 1);
            Assert.IsFalse(responsesSent, "Responses made it to the adapter.");
        }
        public async Task InterceptOnUpdate()
        {
            bool adapterCalled = false;

            void ValidateUpdate(Activity activity)
            {
                adapterCalled = true;
                Assert.True(false); // Should not be called
            }

            var a = new SimpleAdapter(ValidateUpdate);
            var c = new TurnContext(a, new Activity());

            bool wasCalled = false;

            c.OnUpdateActivity((context, activity, next) =>
            {
                Assert.NotNull(activity); // Null activity passed in
                wasCalled = true;

                // Do Not Call Next
                return(Task.FromResult <ResourceResponse>(null));
            });

            await c.UpdateActivityAsync(TestMessage.Message());

            Assert.True(wasCalled);      // Interceptor was called
            Assert.False(adapterCalled); // Adapter was not
        }
        public async Task AllowInterceptionOfDeliveryOnSend()
        {
            bool responsesSent = false;

            void ValidateResponses(Activity[] activities)
            {
                responsesSent = true;
                Assert.True(false); // Should not be called. Interceptor did not work
            }

            var a = new SimpleAdapter(ValidateResponses);
            var c = new TurnContext(a, new Activity());

            int count = 0;

            c.OnSendActivities((context, activities, next) =>
            {
                Assert.NotNull(activities); // Null Array passed in
                count = activities.Count();

                // Do not call next.
                return(Task.FromResult <ResourceResponse[]>(null));
            });

            await c.SendActivityAsync(TestMessage.Message());

            Assert.True(count == 1);
            Assert.False(responsesSent, "Responses made it to the adapter.");
        }
Ejemplo n.º 7
0
        public async Task InterceptAndMutateOnUpdate()
        {
            bool adapterCalled = false;

            void ValidateUpdate(Activity activity)
            {
                Assert.IsTrue(activity.Id == "mutated");
                adapterCalled = true;
            }

            SimpleAdapter a = new SimpleAdapter(ValidateUpdate);
            TurnContext   c = new TurnContext(a, new Activity());

            c.OnUpdateActivity(async(context, activity, next) =>
            {
                Assert.IsNotNull(activity, "Null activity passed in");
                Assert.IsTrue(activity.Id == "1234");
                activity.Id = "mutated";
                return(await next());
            });

            await c.UpdateActivity(TestMessage.Message());

            Assert.IsTrue(adapterCalled); // Adapter was not
        }
Ejemplo n.º 8
0
        public async Task SendAndSetResponded()
        {
            var a = new SimpleAdapter();
            var c = new TurnContext(a, new Activity());

            Assert.False(c.Responded);
            var response = await c.SendActivityAsync(TestMessage.Message("testtest"));

            Assert.True(c.Responded);
            Assert.True(response.Id == "testtest");
        }
Ejemplo n.º 9
0
        public async Task SendAndSetRespondedUsingIMessageActivity()
        {
            var a = new SimpleAdapter();
            var c = new TurnContext(a, new Activity());

            Assert.False(c.Responded);

            var msg = TestMessage.Message().AsMessageActivity();
            await c.SendActivityAsync(msg);

            Assert.True(c.Responded);
        }
Ejemplo n.º 10
0
        public async Task DeleteOneActivityToAdapter()
        {
            bool deleteCalled = false;

            void ValidateDelete(ConversationReference r)
            {
                Assert.NotNull(r);
                Assert.True(r.ActivityId == "12345");
                deleteCalled = true;
            }

            var a = new SimpleAdapter(ValidateDelete);
            var c = new TurnContext(a, TestMessage.Message());
            await c.DeleteActivityAsync("12345");

            Assert.True(deleteCalled);
        }
Ejemplo n.º 11
0
        public async Task SendOneActivityToAdapter()
        {
            bool foundActivity = false;

            void ValidateResponses(Activity[] activities)
            {
                Assert.True(activities.Count() == 1, "Incorrect Count");
                Assert.True(activities[0].Id == "1234");
                foundActivity = true;
            }

            var a = new SimpleAdapter(ValidateResponses);
            var c = new TurnContext(a, new Activity());
            await c.SendActivityAsync(TestMessage.Message());

            Assert.True(foundActivity);
        }
Ejemplo n.º 12
0
        public async Task SendBatchOfActivities()
        {
            var a = new SimpleAdapter();
            var c = new TurnContext(a, new Activity());

            Assert.False(c.Responded);

            var message1 = TestMessage.Message("message1");
            var message2 = TestMessage.Message("message2");

            var response = await c.SendActivitiesAsync(new IActivity[] { message1, message2 });

            Assert.True(c.Responded);
            Assert.True(response.Length == 2);
            Assert.True(response[0].Id == "message1");
            Assert.True(response[1].Id == "message2");
        }
Ejemplo n.º 13
0
        public async Task CallOnSendBeforeDelivery()
        {
            var a = new SimpleAdapter();
            var c = new TurnContext(a, new Activity());

            int count = 0;

            c.OnSendActivities(async(context, activities, next) =>
            {
                Assert.NotNull(activities); // Null Array passed in
                count = activities.Count();
                return(await next());
            });

            await c.SendActivityAsync(TestMessage.Message());

            Assert.True(count == 1);
        }
Ejemplo n.º 14
0
        public async Task PassResourceResponsesThrough()
        {
            void ValidateResponses(Activity[] activities)
            {
                // no need to do anything.
            }

            var a = new SimpleAdapter(ValidateResponses);
            var c = new TurnContext(a, new Activity());

            var activityId = Guid.NewGuid().ToString();
            var activity   = TestMessage.Message();

            activity.Id = activityId;

            var resourceResponse = await c.SendActivityAsync(activity);

            Assert.IsTrue(resourceResponse.Id == activityId, "Incorrect response Id returned");
        }
Ejemplo n.º 15
0
        public async Task TraceActivitiesDoNoSetResponded()
        {
            var a = new SimpleAdapter();
            var c = new TurnContext(a, new Activity());

            Assert.False(c.Responded);

            // Send a Trace Activity, and make sure responded is NOT set.
            var trace = Activity.CreateTraceActivity("trace");
            await c.SendActivityAsync(trace);

            Assert.False(c.Responded);

            // Just to sanity check everything, send a Message and verify the
            // responded flag IS set.
            var msg = TestMessage.Message().AsMessageActivity();
            await c.SendActivityAsync(msg);

            Assert.True(c.Responded);
        }
Ejemplo n.º 16
0
        public async Task UpdateOneActivityToAdapter()
        {
            bool foundActivity = false;

            void ValidateUpdate(Activity activity)
            {
                Assert.NotNull(activity);
                Assert.True(activity.Id == "test");
                foundActivity = true;
            }

            var a = new SimpleAdapter(ValidateUpdate);
            var c = new TurnContext(a, new Activity());

            var message      = TestMessage.Message("test");
            var updateResult = await c.UpdateActivityAsync(message);

            Assert.True(foundActivity);
            Assert.True(updateResult.Id == "test");
        }
Ejemplo n.º 17
0
        public async Task ThrowExceptionInOnSend()
        {
            SimpleAdapter a = new SimpleAdapter();
            TurnContext   c = new TurnContext(a, new Activity());

            c.OnSendActivities(async(context, activities, next) =>
            {
                throw new Exception("test");
            });

            try
            {
                await c.SendActivity(TestMessage.Message());

                Assert.Fail("Should not get here");
            }
            catch (Exception ex)
            {
                Assert.IsTrue(ex.Message == "test");
            }
        }
Ejemplo n.º 18
0
        public async Task ThrowExceptionInOnSend()
        {
            var a = new SimpleAdapter();
            var c = new TurnContext(a, new Activity());

            c.OnSendActivities((context, activities, next) =>
            {
                throw new Exception("test");
            });

            try
            {
                await c.SendActivityAsync(TestMessage.Message());

                Assert.True(false); // Should not get here
            }
            catch (Exception ex)
            {
                Assert.True(ex.Message == "test");
            }
        }
Ejemplo n.º 19
0
        public async Task GetLocaleFromActivity()
        {
            void ValidateResponses(Activity[] activities)
            {
                // no need to do anything.
            }

            var a = new SimpleAdapter(ValidateResponses);
            var c = new TurnContext(a, new Activity());

            var activityId = Guid.NewGuid().ToString();
            var activity   = TestMessage.Message();

            activity.Id     = activityId;
            activity.Locale = "de-DE";

            Task SimpleCallback(ITurnContext turnContext, CancellationToken cancellationToken)
            {
                Assert.Equal("de-DE", ((TurnContext)turnContext).Locale);
                return(Task.CompletedTask);
            }

            await a.ProcessRequest(activity, SimpleCallback, default(CancellationToken));
        }
Ejemplo n.º 20
0
        public async Task RequestIsSet()
        {
            TurnContext c = new TurnContext(new SimpleAdapter(), TestMessage.Message());

            Assert.IsTrue(c.Activity.Id == "1234");
        }
Ejemplo n.º 21
0
        public void RequestIsSet()
        {
            var c = new TurnContext(new SimpleAdapter(), TestMessage.Message());

            Assert.True(c.Activity.Id == "1234");
        }