public void CanConvertKvpToKvp()
        {
            var converterChooserMock = new Mock <ISettingsConverterChooser>();
            var converter            = new KeyValuePairConverter(converterChooserMock.Object);

            var canConvert = converter.CanConvert(typeof(KeyValuePair <int, double>), typeof(KeyValuePair <string, object>));

            Assert.IsTrue(canConvert);
        }
        public void CannotConvertNotKvpToKvp()
        {
            var converterChooserMock = new Mock <ISettingsConverterChooser>();
            var converter            = new KeyValuePairConverter(converterChooserMock.Object);

            var canConvert = converter.CanConvert(typeof(object), typeof(KeyValuePair <string, object>));

            Assert.IsFalse(canConvert);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Converts the given object into a query parameter string
        /// </summary>
        /// <param name="parameters">A list of parameters to convert to a query string.
        /// All objects must be of types that are supported by the JsonQueryStringConverter class.</param>
        /// <returns>The query string</returns>
        private static string ConvertQueryParametersToQueryString(Dictionary <string, object> parameters)
        {
            if (parameters == null)
            {
                return(String.Empty);
            }

            // Build the query parameter string
            var  converter   = new KeyValuePairConverter();
            var  queryString = new StringBuilder();
            bool isFirstItem = true;

            foreach (KeyValuePair <string, object> parameter in parameters)
            {
                if (isFirstItem == true)
                {
                    queryString.Append("?");
                    isFirstItem = false;
                }
                else
                {
                    queryString.Append("&");
                }
                queryString.Append(parameter.Key);
                queryString.Append("=");

                // Handle the "esp_type" parameter separately as it must be sent without quotations "" around the value
                if (parameter.Key == "esp_type")
                {
                    queryString.Append(parameter.Value.ToString());
                }
                else if (converter.CanConvert(parameter.GetType()))
                {
                    queryString.Append(JsonConvert.ToString(parameter.Value));
                }
            }
            return(queryString.ToString());
        }