This is an automated email from the ASF dual-hosted git repository.
yihua pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new feb82e61a06 [HUDI-7686] Add tests on the util methods for type cast of
configuration instances (#11121)
feb82e61a06 is described below
commit feb82e61a06024ddf1efdcad184f2da6e705062a
Author: Y Ethan Guo <[email protected]>
AuthorDate: Thu May 2 20:55:00 2024 -0700
[HUDI-7686] Add tests on the util methods for type cast of configuration
instances (#11121)
---
.../io/storage/BaseTestStorageConfiguration.java | 29 ++++++++++++++++++----
1 file changed, 24 insertions(+), 5 deletions(-)
diff --git
a/hudi-io/src/test/java/org/apache/hudi/io/storage/BaseTestStorageConfiguration.java
b/hudi-io/src/test/java/org/apache/hudi/io/storage/BaseTestStorageConfiguration.java
index 1d6a3d338e4..3bc575e3dff 100644
---
a/hudi-io/src/test/java/org/apache/hudi/io/storage/BaseTestStorageConfiguration.java
+++
b/hudi-io/src/test/java/org/apache/hudi/io/storage/BaseTestStorageConfiguration.java
@@ -37,6 +37,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNotSame;
import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
@@ -71,13 +72,31 @@ public abstract class BaseTestStorageConfiguration<T> {
@Test
public void testConstructorNewInstanceUnwrapCopy() {
- T conf = getConf(EMPTY_MAP);
+ T conf = getConf(prepareConfigs());
StorageConfiguration<T> storageConf = getStorageConfiguration(conf);
StorageConfiguration<T> newStorageConf = storageConf.newInstance();
- assertNotSame(storageConf, newStorageConf);
- assertNotSame(storageConf.unwrap(), newStorageConf.unwrap());
- assertSame(storageConf.unwrap(), storageConf.unwrap());
- assertNotSame(storageConf.unwrap(), storageConf.unwrapCopy());
+ Class unwrapperConfClass = storageConf.unwrap().getClass();
+ assertNotSame(storageConf, newStorageConf,
+ "storageConf.newInstance() should return a different
StorageConfiguration instance.");
+ validateConfigs(newStorageConf);
+ assertNotSame(storageConf.unwrap(), newStorageConf.unwrap(),
+ "storageConf.newInstance() should contain a new copy of the underlying
configuration instance.");
+ assertSame(storageConf.unwrap(), storageConf.unwrap(),
+ "storageConf.unwrap() should return the same underlying configuration
instance.");
+ assertSame(storageConf.unwrap(), storageConf.unwrapAs(unwrapperConfClass),
+ "storageConf.unwrapAs(unwrapperConfClass) should return the same
underlying configuration instance.");
+ assertNotSame(storageConf.unwrap(), storageConf.unwrapCopy(),
+ "storageConf.unwrapCopy() should return a new copy of the underlying
configuration instance.");
+ validateConfigs(getStorageConfiguration(storageConf.unwrapCopy()));
+ assertNotSame(storageConf.unwrap(),
storageConf.unwrapCopyAs(unwrapperConfClass),
+ "storageConf.unwrapCopyAs(unwrapperConfClass) should return a new copy
of the underlying configuration instance.");
+ validateConfigs(getStorageConfiguration((T)
storageConf.unwrapCopyAs(unwrapperConfClass)));
+ assertThrows(
+ IllegalArgumentException.class,
+ () -> storageConf.unwrapAs(Integer.class));
+ assertThrows(
+ IllegalArgumentException.class,
+ () -> storageConf.unwrapCopyAs(Integer.class));
}
@Test