#![allow(clippy::used_underscore_binding, clippy::all, warnings, missing_docs)]
use super::*;
#[ allow( unused_imports ) ]
use ::former::prelude::*;
use ::former::Former;
#[ derive( Debug, PartialEq, Default, Clone, Former ) ]
pub struct SharedTupleInnerA {
pub content: String,
pub priority: i32,
pub enabled: bool,
}
#[ derive( Debug, PartialEq, Default, Clone, Former ) ]
pub struct SharedTupleInnerB {
pub name: String,
pub value: f64,
pub active: bool,
}
#[ derive( Debug, PartialEq, Former ) ]
#[ allow( non_camel_case_types ) ]
pub enum SharedTupleReplacementEnum {
VariantA(SharedTupleInnerA),
VariantB(SharedTupleInnerB),
#[ scalar ]
ScalarString(String),
#[ scalar ]
ScalarNumber(i32),
MultiVariantA(SharedTupleInnerA, String),
MultiVariantB(SharedTupleInnerB, i32),
}
#[ test ]
fn shared_variant_a_test() {
let inner = SharedTupleInnerA {
content: "shared_content_a".to_string(),
priority: 10,
enabled: true,
};
let got = SharedTupleReplacementEnum::variant_a()
._0(inner.clone())
.form();
let expected = SharedTupleReplacementEnum::VariantA(inner);
assert_eq!(got, expected);
}
#[ test ]
fn shared_variant_b_test() {
let inner = SharedTupleInnerB {
name: "shared_name_b".to_string(),
value: 3.14159,
active: false,
};
let got = SharedTupleReplacementEnum::variant_b()
._0(inner.clone())
.form();
let expected = SharedTupleReplacementEnum::VariantB(inner);
assert_eq!(got, expected);
}
#[ test ]
fn shared_scalar_string_test() {
let got = SharedTupleReplacementEnum::scalar_string("shared_scalar".to_string());
let expected = SharedTupleReplacementEnum::ScalarString("shared_scalar".to_string());
assert_eq!(got, expected);
}
#[ test ]
fn shared_scalar_number_test() {
let got = SharedTupleReplacementEnum::scalar_number(42);
let expected = SharedTupleReplacementEnum::ScalarNumber(42);
assert_eq!(got, expected);
}
#[ test ]
fn shared_multi_variant_a_test() {
let inner = SharedTupleInnerA {
content: "multi_a".to_string(),
priority: 5,
enabled: true,
};
let got = SharedTupleReplacementEnum::multi_variant_a()
._0(inner.clone())
._1("additional".to_string())
.form();
let expected = SharedTupleReplacementEnum::MultiVariantA(inner, "additional".to_string());
assert_eq!(got, expected);
}
#[ test ]
fn shared_multi_variant_b_test() {
let inner = SharedTupleInnerB {
name: "multi_b".to_string(),
value: 2.718,
active: true,
};
let got = SharedTupleReplacementEnum::multi_variant_b()
._0(inner.clone())
._1(999)
.form();
let expected = SharedTupleReplacementEnum::MultiVariantB(inner, 999);
assert_eq!(got, expected);
}
#[ test ]
fn shared_functionality_pattern_test() {
let inner_a = SharedTupleInnerA {
content: "pattern_test_a".to_string(),
priority: 1,
enabled: true,
};
let inner_b = SharedTupleInnerB {
name: "pattern_test_b".to_string(),
value: 1.414,
active: false,
};
let variant_a = SharedTupleReplacementEnum::variant_a()
._0(inner_a.clone())
.form();
let variant_b = SharedTupleReplacementEnum::variant_b()
._0(inner_b.clone())
.form();
match variant_a {
SharedTupleReplacementEnum::VariantA(inner) => {
assert_eq!(inner.content, "pattern_test_a");
assert_eq!(inner.priority, 1);
assert_eq!(inner.enabled, true);
},
_ => panic!("Expected VariantA"),
}
match variant_b {
SharedTupleReplacementEnum::VariantB(inner) => {
assert_eq!(inner.name, "pattern_test_b");
assert_eq!(inner.value, 1.414);
assert_eq!(inner.active, false);
},
_ => panic!("Expected VariantB"),
}
}
#[ test ]
fn comprehensive_shared_validation_test() {
let all_variants = vec![
SharedTupleReplacementEnum::scalar_string("test1".to_string()),
SharedTupleReplacementEnum::scalar_number(100),
];
assert_eq!(all_variants.len(), 2);
match &all_variants[0] {
SharedTupleReplacementEnum::ScalarString(s) => assert_eq!(s, "test1"),
_ => panic!("Expected ScalarString"),
}
match &all_variants[1] {
SharedTupleReplacementEnum::ScalarNumber(n) => assert_eq!(*n, 100),
_ => panic!("Expected ScalarNumber"),
}
}