public async Task WithJsonSerializerSettingsSerDe() { const int value = 1234; var expectedJson = $"{{\"Value\":{value * 2}}}"; var jsonSchemaGeneratorSettings = new JsonSchemaGeneratorSettings { SerializerSettings = new JsonSerializerSettings { Converters = new List <JsonConverter> { new UInt32ValueMultiplyConverter() }, ContractResolver = new DefaultContractResolver() } }; var jsonSerializer = new JsonSerializer <UInt32Value>(schemaRegistryClient, jsonSchemaGeneratorSettings: jsonSchemaGeneratorSettings); var jsonDeserializer = new JsonDeserializer <UInt32Value>(jsonSchemaGeneratorSettings: jsonSchemaGeneratorSettings); var v = new UInt32Value { Value = value }; var bytes = await jsonSerializer.SerializeAsync(v, new SerializationContext(MessageComponentType.Value, testTopic)); Assert.NotNull(bytes); Assert.Equal(expectedJson, Encoding.UTF8.GetString(bytes.AsSpan().Slice(5))); var actual = await jsonDeserializer.DeserializeAsync(bytes, false, new SerializationContext(MessageComponentType.Value, testTopic)); Assert.NotNull(actual); Assert.Equal(v.Value, actual.Value); }
public void Null() { var jsonSerializer = new JsonSerializer <UInt32Value>(schemaRegistryClient); var jsonDeserializer = new JsonDeserializer <UInt32Value>(); var bytes = jsonSerializer.SerializeAsync(null, new SerializationContext(MessageComponentType.Value, testTopic)).Result; Assert.Null(bytes); Assert.Null(jsonDeserializer.DeserializeAsync(bytes, true, new SerializationContext(MessageComponentType.Value, testTopic)).Result); }
public void UInt32SerDe() { var jsonSerializer = new JsonSerializer <UInt32Value>(schemaRegistryClient); var jsonDeserializer = new JsonDeserializer <UInt32Value>(); var v = new UInt32Value { Value = 1234 }; var bytes = jsonSerializer.SerializeAsync(v, new SerializationContext(MessageComponentType.Value, testTopic)).Result; Assert.Equal(v.Value, jsonDeserializer.DeserializeAsync(bytes, false, new SerializationContext(MessageComponentType.Value, testTopic)).Result.Value); }
public async Task WithJsonSchemaGeneratorSettingsSerDe(EnumHandling enumHandling, EnumType value, string expectedJson) { var jsonSchemaGeneratorSettings = new JsonSchemaGeneratorSettings { DefaultEnumHandling = enumHandling }; var jsonSerializer = new JsonSerializer <EnumObject>(schemaRegistryClient, jsonSchemaGeneratorSettings: jsonSchemaGeneratorSettings); var jsonDeserializer = new JsonDeserializer <EnumObject>(jsonSchemaGeneratorSettings: jsonSchemaGeneratorSettings); var v = new EnumObject { Value = value }; var bytes = await jsonSerializer.SerializeAsync(v, new SerializationContext(MessageComponentType.Value, testTopic)); Assert.NotNull(bytes); Assert.Equal(expectedJson, Encoding.UTF8.GetString(bytes.AsSpan().Slice(5))); var actual = await jsonDeserializer.DeserializeAsync(bytes, false, new SerializationContext(MessageComponentType.Value, testTopic)); Assert.NotNull(actual); Assert.Equal(actual.Value, value); }