public WarewolfWebRequestForwarder(IHttpClientFactory httpClientFactory, IPublisher publisher, string url, string username, string password, ICollection <IServiceInputBase> valueKeys, bool mapEntireMessage)
 {
     _httpClientFactory = httpClientFactory;
     _publisher         = publisher;
     _url                   = url;
     _username              = username;
     _password              = password;
     _valueKeys             = valueKeys;
     _messageToInputsMapper = new MessageToInputsMapper();
     _mapEntireMessage      = mapEntireMessage;
 }
        public void MessageToInputsMapper_NoInputs_ShouldReturnTrue()
        {
            //-----------------------------Arrange------------------------------
            const string message = "<Root><FirstName>Bob</FirstName><Surname>The Builder</Surname></Root>";
            var          inputs  = new List <(string name, string value)>();
            var          messageToInputsMapper = new MessageToInputsMapper();
            var          expectedString        = "{}";
            //-----------------------------Act----------------------------------
            var mappedData = messageToInputsMapper.Map(message, inputs, false, true, false);

            //-----------------------------Assert-------------------------------
            Assert.AreEqual(expectedString, mappedData);
        }
        public void MessageToInputsMapper_JsonMessage_WithExactProperties_ShouldMap()
        {
            //-----------------------------Arrange------------------------------
            const string message = "{\"FirstName\":\"Bob\",\"Surname\":\"The Builder\"}";
            var          inputs  = new List <(string name, string value)> {
                (name : "FirstName", value : "FirstName"),
                (name : "Surname", value : "Surname")
            };
            var messageToInputsMapper = new MessageToInputsMapper();
            //-----------------------------Act----------------------------------
            var mappedData = messageToInputsMapper.Map(message, inputs, true, false, false);

            //-----------------------------Assert-------------------------------
            Assert.AreEqual(message, mappedData);
        }
        public void MessageToInputsMapper_WhenMapWholeMessage_ShouldSetWholeMessageToVariable()
        {
            //-----------------------------Arrange------------------------------
            const string message = "<Root><FirstName>Bob</FirstName><Surname>The Builder</Surname></Root>";
            var          inputs  = new List <(string name, string value)> {
                (name : "msg", value : ""),
            };
            var messageToInputsMapper = new MessageToInputsMapper();
            var expectedString        = "{\"msg\":\"" + message + "\"}";
            //-----------------------------Act----------------------------------
            var mappedData = messageToInputsMapper.Map(message, inputs, false, true, true);

            //-----------------------------Assert-------------------------------
            Assert.AreEqual(expectedString, mappedData);
        }
        public void MessageToInputsMapper_XMLMessage_WithMappableProperties_ShouldMap()
        {
            //-----------------------------Arrange------------------------------
            const string message = "<Root><FirstName>Bob</FirstName><Surname>The Builder</Surname></Root>";
            var          inputs  = new List <(string name, string value)> {
                (name : "Name", value : "FirstName"),
                (name : "LastName", value : "Surname")
            };
            var messageToInputsMapper = new MessageToInputsMapper();
            var expectedString        = "{\"Name\":\"Bob\",\"LastName\":\"The Builder\"}";
            //-----------------------------Act----------------------------------
            var mappedData = messageToInputsMapper.Map(message, inputs, false, true, false);

            //-----------------------------Assert-------------------------------
            Assert.AreEqual(expectedString, mappedData);
        }
        public void MessageToInputsMapper_JsonMessage_UnMappableProperties_ShouldNotMap()
        {
            //-----------------------------Arrange------------------------------
            const string message = "{\"Something\":\"Bob\",\"SomethingElse\":\"The Builder\"}";
            var          inputs  = new List <(string name, string value)> {
                (name : "Name", value : "FirstName"),
                (name : "LastName", value : "Surname")
            };
            var messageToInputsMapper = new MessageToInputsMapper();
            var expectedString        = "{}";
            //-----------------------------Act----------------------------------
            var mappedData = messageToInputsMapper.Map(message, inputs, true, false, false);

            //-----------------------------Assert-------------------------------
            Assert.AreEqual(expectedString, mappedData);
        }
        public void MessageToInputsMapper_UnMappableData_Xml_Should_NotMap()
        {
            //-----------------------------Arrange------------------------------
            const string message = "<Root><Something>Bob</Something><SomethingElse>The Builder</SomethingElse></Root>";
            var          inputs  = new List <(string name, string value)> {
                (name : "Name", value : "FirstName"),
                (name : "LastName", value : "Surname")
            };
            var messageToInputsMapper = new MessageToInputsMapper();
            var expectedString        = "{}";
            //-----------------------------Act----------------------------------
            var mappedData = messageToInputsMapper.Map(message, inputs, false, true, false);;

            //-----------------------------Assert-------------------------------
            Assert.AreEqual(expectedString, mappedData);
        }