Skip to content

Commit a18f9d1

Browse files
Fix potential schema name collisions in live tests (Azure#27683)
1 parent 9ffbf11 commit a18f9d1

13 files changed

+480
-298
lines changed

sdk/schemaregistry/Azure.Data.SchemaRegistry/tests/SchemaRegistryClientLiveTests.cs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,82 +23,84 @@ private SchemaRegistryClient CreateClient() =>
2323
InstrumentClientOptions(new SchemaRegistryClientOptions())
2424
));
2525

26+
private string GenerateSchemaName() => Recording.GenerateId("test-", 10);
27+
2628
private const string SchemaContent = "{\"type\" : \"record\",\"namespace\" : \"TestSchema\",\"name\" : \"Employee\",\"fields\" : [{ \"name\" : \"Name\" , \"type\" : \"string\" },{ \"name\" : \"Age\", \"type\" : \"int\" }]}";
2729
private const string SchemaContent_V2 = "{\"type\" : \"record\",\"namespace\" : \"TestSchema\",\"name\" : \"Employee_V2\",\"fields\" : [{ \"name\" : \"Name\" , \"type\" : \"string\" },{ \"name\" : \"Age\", \"type\" : \"int\" }]}";
2830

2931
[RecordedTest]
3032
public async Task CanRegisterSchema()
3133
{
3234
var client = CreateClient();
33-
var schemaName = "test1";
35+
var schemaName = GenerateSchemaName();
3436
var groupName = TestEnvironment.SchemaRegistryGroup;
3537
var format = SchemaFormat.Avro;
3638

3739
SchemaProperties registerProperties = await client.RegisterSchemaAsync(groupName, schemaName, SchemaContent, format);
38-
AssertSchemaProperties(registerProperties);
40+
AssertSchemaProperties(registerProperties, schemaName);
3941

4042
SchemaProperties schemaProperties = await client.GetSchemaPropertiesAsync(groupName, schemaName, SchemaContent, format);
41-
AssertSchemaProperties(schemaProperties);
43+
AssertSchemaProperties(schemaProperties, schemaName);
4244
AssertPropertiesAreEqual(registerProperties, schemaProperties);
4345
}
4446

4547
[RecordedTest]
4648
public async Task CanRegisterNewVersionOfSchema()
4749
{
4850
var client = CreateClient();
49-
var schemaName = "test1";
51+
var schemaName = GenerateSchemaName();
5052
var groupName = TestEnvironment.SchemaRegistryGroup;
5153
var format = SchemaFormat.Avro;
5254

5355
SchemaProperties registerProperties = await client.RegisterSchemaAsync(groupName, schemaName, SchemaContent, format);
54-
AssertSchemaProperties(registerProperties);
56+
AssertSchemaProperties(registerProperties, schemaName);
5557

5658
SchemaProperties schemaProperties = await client.GetSchemaPropertiesAsync(groupName, schemaName, SchemaContent, format);
57-
AssertSchemaProperties(schemaProperties);
59+
AssertSchemaProperties(schemaProperties, schemaName);
5860
AssertPropertiesAreEqual(registerProperties, schemaProperties);
5961

6062
SchemaProperties newVersion = await client.RegisterSchemaAsync(schemaProperties.GroupName, schemaProperties.Name, SchemaContent_V2, schemaProperties.Format);
61-
AssertSchemaProperties(newVersion);
63+
AssertSchemaProperties(newVersion, schemaName);
6264
Assert.AreNotEqual(registerProperties.Id, newVersion.Id);
6365
}
6466

6567
[RecordedTest]
6668
public async Task CanGetSchemaId()
6769
{
6870
var client = CreateClient();
69-
var schemaName = "test1";
71+
var schemaName = GenerateSchemaName();
7072
var groupName = TestEnvironment.SchemaRegistryGroup;
7173
var format = SchemaFormat.Avro;
7274

7375
SchemaProperties registerProperties = await client.RegisterSchemaAsync(groupName, schemaName, SchemaContent, format);
74-
AssertSchemaProperties(registerProperties);
76+
AssertSchemaProperties(registerProperties, schemaName);
7577

7678
SchemaProperties schemaProperties = await client.GetSchemaPropertiesAsync(groupName, schemaName, SchemaContent, format);
77-
AssertSchemaProperties(schemaProperties);
79+
AssertSchemaProperties(schemaProperties, schemaName);
7880
AssertPropertiesAreEqual(registerProperties, schemaProperties);
7981
}
8082

8183
[RecordedTest]
8284
public async Task CanGetSchema()
8385
{
8486
var client = CreateClient();
85-
var schemaName = "test1";
87+
var schemaName = GenerateSchemaName();
8688
var groupName = TestEnvironment.SchemaRegistryGroup;
8789
var format = SchemaFormat.Avro;
8890

8991
var registerProperties = await client.RegisterSchemaAsync(groupName, schemaName, SchemaContent, format);
90-
AssertSchemaProperties(registerProperties);
92+
AssertSchemaProperties(registerProperties, schemaName);
9193

9294
SchemaRegistrySchema schema = await client.GetSchemaAsync(registerProperties.Value.Id);
93-
AssertSchema(schema);
95+
AssertSchema(schema, schemaName);
9496
AssertPropertiesAreEqual(registerProperties, schema.Properties);
9597
}
9698

9799
[RecordedTest]
98100
public void CanCreateRegisterRequestForUnknownFormatType()
99101
{
100102
var client = CreateClient();
101-
var schemaName = "test1";
103+
var schemaName = GenerateSchemaName();
102104
var groupName = TestEnvironment.SchemaRegistryGroup;
103105
var format = new SchemaFormat("JSON");
104106
Assert.That(
@@ -110,29 +112,29 @@ public void CanCreateRegisterRequestForUnknownFormatType()
110112
public void CanCreateGetSchemaPropertiesRequestForUnknownFormatType()
111113
{
112114
var client = CreateClient();
113-
var schemaName = "test1";
115+
var schemaName = GenerateSchemaName();
114116
var groupName = TestEnvironment.SchemaRegistryGroup;
115117
var format = new SchemaFormat("JSON");
116118
Assert.That(
117119
async () => await client.GetSchemaPropertiesAsync(groupName, schemaName, SchemaContent, format),
118120
Throws.InstanceOf<RequestFailedException>().And.Property(nameof(RequestFailedException.Status)).EqualTo(415));
119121
}
120122

121-
private void AssertSchema(SchemaRegistrySchema schema)
123+
private void AssertSchema(SchemaRegistrySchema schema, string schemaName)
122124
{
123-
AssertSchemaProperties(schema.Properties);
125+
AssertSchemaProperties(schema.Properties, schemaName);
124126
Assert.AreEqual(
125127
Regex.Replace(SchemaContent, @"\s+", string.Empty),
126128
Regex.Replace(schema.Definition, @"\s+", string.Empty));
127129
}
128130

129-
private void AssertSchemaProperties(SchemaProperties properties)
131+
private void AssertSchemaProperties(SchemaProperties properties, string schemaName)
130132
{
131133
Assert.IsNotNull(properties);
132134
Assert.IsNotNull(properties.Id);
133135
Assert.IsTrue(Guid.TryParse(properties.Id, out Guid _));
134136
Assert.AreEqual(SchemaFormat.Avro, properties.Format);
135-
Assert.AreEqual("test1", properties.Name);
137+
Assert.AreEqual(schemaName, properties.Name);
136138
Assert.AreEqual(TestEnvironment.SchemaRegistryGroup, properties.GroupName);
137139
}
138140

sdk/schemaregistry/Azure.Data.SchemaRegistry/tests/SessionRecords/SchemaRegistryClientLiveTests/CanCreateGetSchemaPropertiesRequestForUnknownFormatType.json

Lines changed: 29 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/schemaregistry/Azure.Data.SchemaRegistry/tests/SessionRecords/SchemaRegistryClientLiveTests/CanCreateGetSchemaPropertiesRequestForUnknownFormatTypeAsync.json

Lines changed: 29 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/schemaregistry/Azure.Data.SchemaRegistry/tests/SessionRecords/SchemaRegistryClientLiveTests/CanCreateRegisterRequestForUnknownFormatType.json

Lines changed: 29 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/schemaregistry/Azure.Data.SchemaRegistry/tests/SessionRecords/SchemaRegistryClientLiveTests/CanCreateRegisterRequestForUnknownFormatTypeAsync.json

Lines changed: 29 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)