in crates/core/src/table/builder.rs [364:397]
fn test_builder_resolve_user_provided_options_should_apply_precedence_order() {
let mut builder = TableBuilder::from_base_uri("/tmp/hudi_data")
.with_hudi_option("hoodie.option1", "value1")
.with_option("hoodie.option2", "'value2")
.with_hudi_options([
("hoodie.option1", "value1-1"),
("hoodie.option3", "value3"),
("hoodie.option1", "value1-2"),
])
.with_storage_option("AWS_REGION", "us-east-2")
.with_storage_options([
("AWS_REGION", "us-east-1"),
("AWS_ENDPOINT", "s3.us-east-1.amazonaws.com"),
])
.with_option("AWS_REGION", "us-west-1")
.with_options([
("hoodie.option3", "value3-1"),
("hoodie.option2", "value2-1"),
]);
builder.resolve_user_provided_options();
assert_eq!(builder.hudi_options.len(), 4);
assert_eq!(builder.hudi_options["hoodie.base.path"], "/tmp/hudi_data");
assert_eq!(builder.hudi_options["hoodie.option1"], "value1-2");
assert_eq!(builder.hudi_options["hoodie.option2"], "value2-1");
assert_eq!(builder.hudi_options["hoodie.option3"], "value3");
assert_eq!(builder.storage_options.len(), 2);
assert_eq!(builder.storage_options["AWS_REGION"], "us-east-1");
assert_eq!(
builder.storage_options["AWS_ENDPOINT"],
"s3.us-east-1.amazonaws.com"
);
}