in crates/core/src/table/mod.rs [846:895]
fn validate_invalid_table_props() {
let table = get_test_table_without_validation("table_props_invalid");
let configs = table.hudi_configs;
assert!(
configs.validate(BaseFileFormat).is_err(),
"required config is missing"
);
assert!(configs.validate(Checksum).is_err());
assert!(
configs.validate(DatabaseName).is_ok(),
"non-required config is missing"
);
assert!(configs.validate(DropsPartitionFields).is_err());
assert!(configs.validate(IsHiveStylePartitioning).is_err());
assert!(configs.validate(IsPartitionPathUrlencoded).is_err());
assert!(
configs.validate(KeyGeneratorClass).is_ok(),
"non-required config is missing"
);
assert!(
configs.validate(PartitionFields).is_ok(),
"non-required config is missing"
);
assert!(
configs.validate(PrecombineField).is_ok(),
"non-required config is missing"
);
assert!(
configs.validate(PopulatesMetaFields).is_ok(),
"non-required config is missing"
);
assert!(
configs.validate(RecordKeyFields).is_ok(),
"non-required config is missing"
);
assert!(
configs.validate(TableName).is_err(),
"required config is missing"
);
assert!(
configs.validate(TableType).is_ok(),
"Valid table type value"
);
assert!(configs.validate(TableVersion).is_err());
assert!(configs.validate(TimelineLayoutVersion).is_err());
assert!(
configs.validate(TimelineTimezone).is_ok(),
"non-required config is missing"
);
}