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"; await next(); }); await c.UpdateActivity(TestMessage.Message()); Assert.IsTrue(adapterCalled); // Adapter was not }
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 }); await c.UpdateActivity(TestMessage.Message()); Assert.IsTrue(wasCalled); // Interceptor was called Assert.IsFalse(adapterCalled); // Adapter was not }
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; await next(); }); await c.UpdateActivity(TestMessage.Message()); Assert.IsTrue(wasCalled); Assert.IsTrue(foundActivity); }
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"; await next(); }); await c.SendActivity(TestMessage.Message()); // Intercepted the message, changed it, and sent it on to the Adapter Assert.IsTrue(foundIt); }
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. }); await c.SendActivity(TestMessage.Message()); Assert.IsTrue(count == 1); Assert.IsFalse(responsesSent, "Responses made it to the adapter."); }
public async Task SendAndSetResponded() { SimpleAdapter a = new SimpleAdapter(); TurnContext c = new TurnContext(a, new Activity()); Assert.IsFalse(c.Responded); var response = await c.SendActivity(TestMessage.Message("testtest")); Assert.IsTrue(c.Responded); Assert.IsTrue(response.Id == "testtest"); }
public async Task SendAndSetRespondedUsingIMessageActivity() { SimpleAdapter a = new SimpleAdapter(); TurnContext c = new TurnContext(a, new Activity()); Assert.IsFalse(c.Responded); IMessageActivity msg = TestMessage.Message().AsMessageActivity(); await c.SendActivity(msg); Assert.IsTrue(c.Responded); }
public async Task DeleteOneActivityToAdapter() { bool deleteCalled = false; void ValidateDelete(ConversationReference r) { Assert.IsNotNull(r); Assert.IsTrue(r.ActivityId == "12345"); deleteCalled = true; } SimpleAdapter a = new SimpleAdapter(ValidateDelete); TurnContext c = new TurnContext(a, TestMessage.Message()); await c.DeleteActivity("12345"); Assert.IsTrue(deleteCalled); }
public async Task SendOneActivityToAdapter() { bool foundActivity = false; void ValidateResponses(Activity[] activities) { Assert.IsTrue(activities.Count() == 1, "Incorrect Count"); Assert.IsTrue(activities[0].Id == "1234"); foundActivity = true; } SimpleAdapter a = new SimpleAdapter(ValidateResponses); TurnContext c = new TurnContext(a, new Activity()); await c.SendActivity(TestMessage.Message()); Assert.IsTrue(foundActivity); }
public async Task SendBatchOfActivities() { SimpleAdapter a = new SimpleAdapter(); TurnContext c = new TurnContext(a, new Activity()); Assert.IsFalse(c.Responded); var message1 = TestMessage.Message("message1"); var message2 = TestMessage.Message("message2"); var response = await c.SendActivities(new IActivity[] { message1, message2 }); Assert.IsTrue(c.Responded); Assert.IsTrue(response.Length == 2); Assert.IsTrue(response[0].Id == "message1"); Assert.IsTrue(response[1].Id == "message2"); }
public async Task CallOnSendBeforeDelivery() { SimpleAdapter a = new SimpleAdapter(); 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(); return(await next()); }); await c.SendActivity(TestMessage.Message()); Assert.IsTrue(count == 1); }
public async Task PassResourceResponsesThrough() { void ValidateResponses(Activity[] activities) { // no need to do anything. } SimpleAdapter a = new SimpleAdapter(ValidateResponses); TurnContext c = new TurnContext(a, new Activity()); string activityId = Guid.NewGuid().ToString(); var activity = TestMessage.Message(); activity.Id = activityId; var resourceResponse = await c.SendActivity(activity); Assert.IsTrue(resourceResponse.Id == activityId, "Incorrect response Id returned"); }
public async Task UpdateOneActivityToAdapter() { bool foundActivity = false; void ValidateUpdate(Activity activity) { Assert.IsNotNull(activity); Assert.IsTrue(activity.Id == "test"); foundActivity = true; } SimpleAdapter a = new SimpleAdapter(ValidateUpdate); TurnContext c = new TurnContext(a, new Activity()); var message = TestMessage.Message("test"); var updateResult = await c.UpdateActivity(message); Assert.IsTrue(foundActivity); Assert.IsTrue(updateResult.Id == "test"); }
public async Task TraceActivitiesDoNoSetResponded() { SimpleAdapter a = new SimpleAdapter(); TurnContext c = new TurnContext(a, new Activity()); Assert.IsFalse(c.Responded); // Send a Trace Activity, and make sure responded is NOT set. ITraceActivity trace = Activity.CreateTraceActivity("trace"); await c.SendActivity(trace); Assert.IsFalse(c.Responded); // Just to sanity check everything, send a Message and verify the // responded flag IS set. IMessageActivity msg = TestMessage.Message().AsMessageActivity(); await c.SendActivity(msg); Assert.IsTrue(c.Responded); }
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"); } }
public async Task RequestIsSet() { TurnContext c = new TurnContext(new SimpleAdapter(), TestMessage.Message()); Assert.IsTrue(c.Activity.Id == "1234"); }