public async Task WarewolfWebRequestForwarder_Consume_GivenSuccessResponse_ShouldNotPublishMessageToDeadLetterQueueAsync() { //---------------------------------Arrange-------------------------------- var mockHttpClient = new Mock <IHttpClient>(); var mockPublisher = new Mock <IPublisher>(); mockPublisher.Setup(p => p.Publish(It.IsAny <byte[]>())).Verifiable(); var headers = new Headers(); headers["Warewolf-Custom-Transaction-Id"] = new [] { new Guid().ToString() }; var mockHttpClientFactory = new Mock <IHttpClientFactory>(); mockHttpClient.Setup(c => c.PostAsync(It.IsAny <string>(), It.IsAny <string>())).Returns(Task <HttpResponseMessage> .FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.OK))); mockHttpClientFactory.Setup(o => o.New(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), headers)).Returns(mockHttpClient.Object); var testUrl = "http://warewolf.io:0420/test/url"; var inputs = new List <IServiceInputBase>(); var WarewolfWebRequestForwarder = new WarewolfWebRequestForwarder(mockHttpClientFactory.Object, mockPublisher.Object, testUrl, "", "", inputs, false); //---------------------------------Act------------------------------------ string message = "{\"FirstName\":\"My Name\"}"; var result = await WarewolfWebRequestForwarder.Consume(Encoding.UTF8.GetBytes(message), headers); //---------------------------------Assert--------------------------------- Assert.AreEqual(ConsumerResult.Success, result); mockPublisher.Verify(p => p.Publish(It.IsAny <byte[]>()), Times.Never); }
public void WarewolfWebRequestForwarder_Consume_GivenMappableInputsAndXmlData_ShouldCreateCorrectPostBody() { //---------------------------------Arrange-------------------------------- var mockHttpClient = new Mock <IHttpClient>(); var mockHttpClientFactory = new Mock <IHttpClientFactory>(); var postBody = ""; var headers = new Headers(); headers["Warewolf-Custom-Transaction-Id"] = new [] { new Guid().ToString() }; mockHttpClient.Setup(c => c.PostAsync(It.IsAny <string>(), It.IsAny <string>())).Callback((string o, string p) => { postBody = p; }).Returns(Task <HttpResponseMessage> .FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.OK))); mockHttpClientFactory.Setup(o => o.New(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), headers)).Returns(mockHttpClient.Object); var testUrl = "http://warewolf.io:0420/test/url"; var inputs = new List <IServiceInputBase> { new ServiceInput("Name", "FirstName") }; var WarewolfWebRequestForwarder = new WarewolfWebRequestForwarder(mockHttpClientFactory.Object, new Mock <IPublisher>().Object, testUrl, "", "", inputs, false); var expectedPostBody = "{\"Name\":\"My Name\"}"; //---------------------------------Act------------------------------------ string message = "<Root><FirstName>My Name</FirstName></Root>"; var result = WarewolfWebRequestForwarder.Consume(Encoding.UTF8.GetBytes(message), headers).Result; //---------------------------------Assert--------------------------------- Assert.AreEqual(ConsumerResult.Success, result); Assert.AreEqual(expectedPostBody, postBody); }
public void WarewolfWebRequestForwarder_Consume_Should_CallPostAsync() { //---------------------------------Arrange-------------------------------- var mockHttpClient = new Mock <IHttpClient>(); var mockHttpClientFactory = new Mock <IHttpClientFactory>(); mockHttpClient.Setup(c => c.PostAsync(It.IsAny <string>(), It.IsAny <string>())).Returns(Task <HttpResponseMessage> .FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.OK))); mockHttpClientFactory.Setup(o => o.New(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(mockHttpClient.Object); var testUrl = "http://warewolf.io:0420/test/url"; var WarewolfWebRequestForwarder = new WarewolfWebRequestForwarder(mockHttpClientFactory.Object, new Mock <IPublisher>().Object, testUrl, "", "", new List <IServiceInputBase>(), false); //---------------------------------Act------------------------------------ var result = WarewolfWebRequestForwarder.Consume(Encoding.UTF8.GetBytes("This is a message")).Result; //---------------------------------Assert--------------------------------- Assert.AreEqual(ConsumerResult.Success, result); mockHttpClient.Verify(o => o.PostAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Once); }