public void AddDuplicateField() { var record = new RecordSchema("TestRecord"); var field = new RecordSchema.Field("TestField"); record.Add(field); Assert.Throws(typeof(AvroParseException), () => record.Add(field)); }
public void RemoveField() { var record = new RecordSchema("TestRecord"); var field = new RecordSchema.Field("TestField"); record.Add(field); Assert.IsFalse(record.Remove("X")); Assert.IsTrue(record.Remove(field.Name)); Assert.IsEmpty(record); }
private static IList <RecordSchema.Field> ParseRecordFieldSchema(JArray jArray, IDictionary <string, NamedSchema> namedTypes, Stack <string> enclosingNamespace) { var keys = new HashSet <string>() { "type", "name" }; var optionalKeys = new HashSet <string>() { "aliases", "doc", "default", "order" }; var fields = new List <RecordSchema.Field>(); foreach (var jToken in jArray) { JsonUtil.AssertKeys(jToken, keys, optionalKeys, out var tags); var name = JsonUtil.GetValue <string>(jToken, "name"); var type = JsonUtil.GetValue <JToken>(jToken, "type"); var fieldType = ParseSchema(type, namedTypes, enclosingNamespace); var recordFieldSchema = new RecordSchema.Field(name, fieldType); recordFieldSchema.AddTags(tags); if (JsonUtil.TryGetValue <JArray>(jToken, "aliases", out var aliases)) { recordFieldSchema.Aliases = aliases.Values <string>().ToArray(); } if (JsonUtil.TryGetValue <string>(jToken, "doc", out var doc)) { recordFieldSchema.Doc = doc; } if (JsonUtil.TryGetValue <JToken>(jToken, "default", out var def)) { recordFieldSchema.Default = def; } if (JsonUtil.TryGetValue <string>(jToken, "order", out var order)) { recordFieldSchema.Order = order; } fields.Add(recordFieldSchema); } return(fields); }