/// <summary>
        /// Configure the serializer using relevant configuration parameter(s) in <paramref name="config" /> (if present)
        /// </summary>
        /// <param name="config">A collection containing configuration parameter(s) relevant to this serializer.</param>
        /// <param name="isKey">Must be true - indicates this class is used to serialize keys. </param>
        /// <returns>An updated configuration collection.</returns>
        public IEnumerable <KeyValuePair <string, object> > Configure(IEnumerable <KeyValuePair <string, object> > config, bool isKey)
        {
            if (!isKey)
            {
                throw new InvalidOperationException($"{nameof(isKey)} must be true.");
            }

            return(InnerSerializer.Configure(config, true));
        }
Ejemplo n.º 2
0
        public void SerializerConstructValueViaConfig()
        {
            string testString = "hello world";
            var    config     = new Dictionary <string, object>();

            config.Add("dotnet.string.serializer.encoding.value", "utf-8");
            var serializer = new StringSerializer();
            var newConfig  = serializer.Configure(config, false);

            Assert.Equal(0, newConfig.Count());
            var serialized = serializer.Serialize("mytopic", testString);

            Assert.Equal(new StringDeserializer(Encoding.UTF8).Deserialize("mytopic", serialized), testString);
        }
Ejemplo n.º 3
0
        public void SerializeNoConfigValue()
        {
            try
            {
                var serializer = new StringSerializer();
                serializer.Configure(new Dictionary <string, object>(), false);
            }
            catch (Exception)
            {
                return;
            }

            Assert.True(false, "Exception expected");
        }
Ejemplo n.º 4
0
        public void SerializeInvalidConfigValue()
        {
            var config = new Dictionary <string, object>();

            config.Add("dotnet.string.serializer.encoding.value", "invalid-encoding");
            try
            {
                var serializer = new StringSerializer();
                serializer.Configure(config, false);
            }
            catch (Exception)
            {
                return;
            }

            Assert.True(false, "Exception expected");
        }
Ejemplo n.º 5
0
        public void SerializeDoubleConfigKey()
        {
            var config = new Dictionary <string, object>();

            config.Add("dotnet.string.serializer.encoding.value", "utf-8");
            try
            {
                var serializer = new StringSerializer(Encoding.UTF32);
                serializer.Configure(config, false);
            }
            catch (ArgumentException)
            {
                return;
            }

            Assert.True(false, "Exception expected");
        }