Skip to content

Commit be508c9

Browse files
committed
Add test
1 parent 34e8ccc commit be508c9

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

test/Confluent.SchemaRegistry.Serdes.UnitTests/JsonSerializeDeserialize.cs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,59 @@ public async Task NestedValidationFailureReturnsPath()
460460
}
461461
}
462462

463+
[Fact]
464+
public async void ValidationUseLatest()
465+
{
466+
var schemaStr = @"{
467+
""type"": ""object"",
468+
""properties"": {
469+
""favorite_color"": {
470+
""type"": ""string""
471+
},
472+
""favorite_number"": {
473+
""type"": ""string""
474+
},
475+
""name"": {
476+
""type"": ""string""
477+
}
478+
}
479+
}";
480+
481+
var schema = new RegisteredSchema("topic-value", 1, 1, schemaStr, SchemaType.Json, null);
482+
store[schemaStr] = 1;
483+
subjectStore["topic-value"] = new List<RegisteredSchema> { schema };
484+
var config = new JsonSerializerConfig
485+
{
486+
AutoRegisterSchemas = false,
487+
UseLatestVersion = true
488+
};
489+
RuleRegistry ruleRegistry = new RuleRegistry();
490+
var serializer = new JsonSerializer<Customer>(schemaRegistryClient, config, null,
491+
ruleRegistry);
492+
493+
var user = new Customer
494+
{
495+
FavoriteColor = "blue",
496+
FavoriteNumber = 100,
497+
Name = "awesome"
498+
};
499+
500+
try
501+
{
502+
await serializer.SerializeAsync(user, new SerializationContext(MessageComponentType.Value, testTopic));
503+
Assert.True(false, "Serialization did not throw an expected exception");
504+
}
505+
catch (InvalidDataException ex)
506+
{
507+
Assert.Equal("Schema validation failed for properties: [#/favorite_number]", ex.Message);
508+
}
509+
catch (Exception ex)
510+
{
511+
Assert.True(false,
512+
$"Serialization threw exception of type {ex.GetType().FullName} instead of the expected {typeof(InvalidDataException).FullName}");
513+
}
514+
}
515+
463516
[Fact]
464517
public void CELCondition()
465518
{

0 commit comments

Comments
 (0)