You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by mg...@apache.org on 2022/10/20 09:03:52 UTC
[avro] 02/02: AVRO-3646: Simplify the serialization tests
This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch avro-3646-serde-for-enum-mixed-variants
in repository https://gitbox.apache.org/repos/asf/avro.git
commit 8bcf5c4f68de02857eed3d2dcbb936bd32a8a1ba
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
AuthorDate: Thu Oct 20 12:03:23 2022 +0300
AVRO-3646: Simplify the serialization tests
Signed-off-by: Martin Tzvetanov Grigorov <mg...@apache.org>
---
lang/rust/avro/src/ser.rs | 104 +++++++++++++++++-----------------------------
1 file changed, 39 insertions(+), 65 deletions(-)
diff --git a/lang/rust/avro/src/ser.rs b/lang/rust/avro/src/ser.rs
index 7f3a551f1..e7b1da597 100644
--- a/lang/rust/avro/src/ser.rs
+++ b/lang/rust/avro/src/ser.rs
@@ -1002,83 +1002,57 @@ mod tests {
#[test]
fn avro_3646_test_to_value_enum() {
#[derive(Debug, Deserialize, Serialize, PartialEq, Eq)]
- struct TestNullExternalEnum2 {
- a: NullExternalEnum2,
+ struct TestNullExternalEnum {
+ a: NullExternalEnum,
}
#[derive(Debug, Deserialize, Serialize, PartialEq, Eq)]
- enum NullExternalEnum2 {
+ enum NullExternalEnum {
Val1,
Val2(),
Val3(()),
Val4(u64),
}
- let test_val1 = TestNullExternalEnum2 {
- a: NullExternalEnum2::Val1,
- };
-
- let expected_val1 =
- Value::Record(vec![("a".to_owned(), Value::Enum(0, "Val1".to_owned()))]);
-
- let actual_val1 = to_value(test_val1).unwrap();
- assert_eq!(
- actual_val1, expected_val1,
- "error serializing null external enum, val1"
- );
-
- let test_val2 = TestNullExternalEnum2 {
- a: NullExternalEnum2::Val2(),
- };
-
- let expected_val2 = Value::Record(vec![(
- "a".to_owned(),
- Value::Record(vec![
- ("type".to_owned(), Value::Enum(1, "Val2".to_owned())),
- ("value".to_owned(), Value::Array(vec![])),
- ]),
- )]);
-
- let actual_val2 = to_value(test_val2).unwrap();
- assert_eq!(
- actual_val2, expected_val2,
- "error serializing null external enum, val2"
- );
-
- let test_val3 = TestNullExternalEnum2 {
- a: NullExternalEnum2::Val3(()),
- };
-
- let expected_val3 = Value::Record(vec![(
- "a".to_owned(),
- Value::Record(vec![
- ("type".to_owned(), Value::Enum(2, "Val3".to_owned())),
- ("value".to_owned(), Value::Union(2, Value::Null.into())),
- ]),
- )]);
+ let data = vec![
+ (TestNullExternalEnum {
+ a: NullExternalEnum::Val1,
+ }, Value::Record(vec![("a".to_owned(), Value::Enum(0, "Val1".to_owned()))])),
- let actual_val3 = to_value(test_val3).unwrap();
- assert_eq!(
- actual_val3, expected_val3,
- "error serializing null external enum, val3"
- );
+ (TestNullExternalEnum {
+ a: NullExternalEnum::Val2(),
+ }, Value::Record(vec![(
+ "a".to_owned(),
+ Value::Record(vec![
+ ("type".to_owned(), Value::Enum(1, "Val2".to_owned())),
+ ("value".to_owned(), Value::Array(vec![])),
+ ]),
+ )])),
- let test_val4 = TestNullExternalEnum2 {
- a: NullExternalEnum2::Val4(123),
- };
+ (TestNullExternalEnum {
+ a: NullExternalEnum::Val3(()),
+ }, Value::Record(vec![(
+ "a".to_owned(),
+ Value::Record(vec![
+ ("type".to_owned(), Value::Enum(2, "Val3".to_owned())),
+ ("value".to_owned(), Value::Union(2, Value::Null.into())),
+ ]),
+ )])),
- let expected_val4 = Value::Record(vec![(
- "a".to_owned(),
- Value::Record(vec![
- ("type".to_owned(), Value::Enum(3, "Val4".to_owned())),
- ("value".to_owned(), Value::Union(3, Value::Long(123).into())),
- ]),
- )]);
+ (TestNullExternalEnum {
+ a: NullExternalEnum::Val4(123),
+ }, Value::Record(vec![(
+ "a".to_owned(),
+ Value::Record(vec![
+ ("type".to_owned(), Value::Enum(3, "Val4".to_owned())),
+ ("value".to_owned(), Value::Union(3, Value::Long(123).into())),
+ ]),
+ )]))
+ ];
- let actual_val4 = to_value(test_val4).unwrap();
- assert_eq!(
- actual_val4, expected_val4,
- "error serializing null external enum, val4"
- );
+ for (test, expected) in &data {
+ let actual = to_value(test).unwrap();
+ assert_eq!(actual, *expected,);
+ }
}
}