/// <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)); }
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); }
public void SerializeNoConfigValue() { try { var serializer = new StringSerializer(); serializer.Configure(new Dictionary <string, object>(), false); } catch (Exception) { return; } Assert.True(false, "Exception expected"); }
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"); }
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"); }