MCPcopy Create free account
hub / github.com/apache/avro-rs / test_enum_default

Function test_enum_default

avro/src/lib.rs:175–226  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

173 //TODO: move where it fits better
174 #[test]
175 fn test_enum_default() {
176 let writer_raw_schema = r#"
177 {
178 "type": "record",
179 "name": "test",
180 "fields": [
181 {"name": "a", "type": "long", "default": 42},
182 {"name": "b", "type": "string"}
183 ]
184 }
185 "#;
186 let reader_raw_schema = r#"
187 {
188 "type": "record",
189 "name": "test",
190 "fields": [
191 {"name": "a", "type": "long", "default": 42},
192 {"name": "b", "type": "string"},
193 {
194 "name": "c",
195 "type": {
196 "type": "enum",
197 "name": "suit",
198 "symbols": ["diamonds", "spades", "clubs", "hearts"]
199 },
200 "default": "spades"
201 }
202 ]
203 }
204 "#;
205 let writer_schema = Schema::parse_str(writer_raw_schema).unwrap();
206 let reader_schema = Schema::parse_str(reader_raw_schema).unwrap();
207 let mut writer = Writer::with_codec(&writer_schema, Vec::new(), Codec::Null).unwrap();
208 let mut record = Record::new(writer.schema()).unwrap();
209 record.put("a", 27i64);
210 record.put("b", "foo");
211 writer.append_value(record).unwrap();
212 let input = writer.into_inner().unwrap();
213 let mut reader = Reader::builder(&input[..])
214 .reader_schema(&reader_schema)
215 .build()
216 .unwrap();
217 assert_eq!(
218 reader.next().unwrap().unwrap(),
219 Value::Record(vec![
220 ("a".to_string(), Value::Long(27)),
221 ("b".to_string(), Value::String("foo".to_string())),
222 ("c".to_string(), Value::Enum(1, "spades".to_string())),
223 ])
224 );
225 assert!(reader.next().is_none());
226 }
227
228 //TODO: move where it fits better
229 #[test]

Callers

nothing calls this directly

Calls 6

schemaMethod · 0.80
putMethod · 0.80
append_valueMethod · 0.80
into_innerMethod · 0.80
buildMethod · 0.80
reader_schemaMethod · 0.80

Tested by

no test coverage detected