public async Task MultipleHttpHandlerConstructor() { string appUrl = MobileAppUriValidator.DummyMobileApp; TestHttpHandler hijack = new TestHttpHandler(); string firstBeforeMessage = "Message before 1"; string firstAfterMessage = "Message after 1"; string secondBeforeMessage = "Message before 2"; string secondAfterMessage = "Message after 2"; ComplexDelegatingHandler firstHandler = new ComplexDelegatingHandler(firstBeforeMessage, firstAfterMessage); ComplexDelegatingHandler secondHandler = new ComplexDelegatingHandler(secondBeforeMessage, secondAfterMessage); IMobileServiceClient service = new MobileServiceClient(appUrl, handlers: new HttpMessageHandler[] { firstHandler, secondHandler, hijack }); // Validate that handlers are properly chained Assert.AreSame(hijack, secondHandler.InnerHandler); Assert.AreSame(secondHandler, firstHandler.InnerHandler); // Clears the messages on the handler ComplexDelegatingHandler.ClearStoredMessages(); // Set the handler to return an empty array hijack.SetResponseContent("[]"); JToken response = await service.GetTable("foo").ReadAsync("bar"); var storedMessages = new List <string>(ComplexDelegatingHandler.AllMessages); Assert.AreEqual(4, storedMessages.Count); Assert.AreEqual(firstBeforeMessage, storedMessages[0]); Assert.AreEqual(secondBeforeMessage, storedMessages[1]); Assert.AreEqual(secondAfterMessage, storedMessages[2]); Assert.AreEqual(firstAfterMessage, storedMessages[3]); }
public async Task MultipleHttpHandlerConstructor() { string appUrl = "http://www.test.com/"; string appKey = "secret..."; TestHttpHandler hijack = new TestHttpHandler(); string firstBeforeMessage = "Message before 1"; string firstAfterMessage = "Message after 1"; string secondBeforeMessage = "Message before 2"; string secondAfterMessage = "Message after 2"; ComplexDelegatingHandler firstHandler = new ComplexDelegatingHandler(firstBeforeMessage, firstAfterMessage); ComplexDelegatingHandler secondHandler = new ComplexDelegatingHandler(secondBeforeMessage, secondAfterMessage); IMobileServiceClient service = new MobileServiceClient(new Uri(appUrl), appKey, firstHandler, secondHandler, hijack); // Validate that handlers are properly chained Assert.AreSame(hijack, secondHandler.InnerHandler); Assert.AreSame(secondHandler, firstHandler.InnerHandler); // Clears the messages on the handler ComplexDelegatingHandler.ClearStoredMessages(); // Set the handler to return an empty array hijack.SetResponseContent("[]"); JToken response = await service.GetTable("foo").ReadAsync("bar"); var storedMessages = new List<string>(ComplexDelegatingHandler.AllMessages); Assert.AreEqual(4, storedMessages.Count); Assert.AreEqual(firstBeforeMessage, storedMessages[0]); Assert.AreEqual(secondBeforeMessage, storedMessages[1]); Assert.AreEqual(secondAfterMessage, storedMessages[2]); Assert.AreEqual(firstAfterMessage, storedMessages[3]); }