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);
        }
Esempio n. 3
0
        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);
        }