github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/clients/hadoopfs/src/test/java/io/lakefs/FSConfigurationTest.java (about) 1 package io.lakefs; 2 3 import org.apache.hadoop.conf.Configuration; 4 import org.junit.Assert; 5 import org.junit.Test; 6 7 import java.util.HashMap; 8 import java.util.Map; 9 10 public class FSConfigurationTest { 11 12 @Test 13 public void testGet() { 14 Configuration conf = new Configuration(false); 15 conf.set("fs.lakefs.key1", "lakefs1"); 16 conf.set("fs.scheme.key1", "scheme1"); 17 conf.set("fs.lakefs.key2", "lakefs2"); 18 conf.set("fs.scheme.key3", "scheme3"); 19 Assert.assertEquals("lakefs1", FSConfiguration.get(conf, "lakefs", "key1")); 20 Assert.assertEquals("lakefs1", FSConfiguration.get(conf, "lakefs", "key1", "default")); 21 Assert.assertEquals("scheme1", FSConfiguration.get(conf, "scheme", "key1")); 22 Assert.assertEquals("scheme1", FSConfiguration.get(conf, "scheme", "key1", "default")); 23 Assert.assertEquals("lakefs2", FSConfiguration.get(conf, "scheme", "key2")); 24 Assert.assertEquals("lakefs2", FSConfiguration.get(conf, "scheme", "key2", "default")); 25 Assert.assertEquals("lakefs2", FSConfiguration.get(conf, "lakefs", "key2")); 26 Assert.assertEquals("lakefs2", FSConfiguration.get(conf, "lakefs", "key2", "default")); 27 Assert.assertEquals("scheme3", FSConfiguration.get(conf, "scheme", "key3")); 28 Assert.assertEquals("scheme3", FSConfiguration.get(conf, "scheme", "key3", "default")); 29 Assert.assertNull(FSConfiguration.get(conf, "lakefs", "key3")); 30 Assert.assertEquals("default", FSConfiguration.get(conf, "lakefs", "key3", "default")); 31 Assert.assertNull(FSConfiguration.get(conf, "lakefs", "missing")); 32 Assert.assertEquals("default", FSConfiguration.get(conf, "lakefs", "missing", "default")); 33 } 34 35 @Test 36 public void testGetInt() { 37 Configuration conf = new Configuration(false); 38 conf.setInt("fs.lakefs.key1", 1); 39 conf.setInt("fs.scheme.key1", 11); 40 conf.setInt("fs.lakefs.key2", 2); 41 conf.setInt("fs.scheme.key3", 33); 42 conf.set("fs.lakefs.bad.key", "bad"); 43 Assert.assertEquals(1, FSConfiguration.getInt(conf, "lakefs", "key1", 99)); 44 Assert.assertEquals(11, FSConfiguration.getInt(conf, "scheme", "key1", 99)); 45 Assert.assertEquals(2, FSConfiguration.getInt(conf, "scheme", "key2", 99)); 46 Assert.assertEquals(2, FSConfiguration.getInt(conf, "lakefs", "key2", 99)); 47 Assert.assertEquals(33, FSConfiguration.getInt(conf, "scheme", "key3", 99)); 48 Assert.assertEquals(99, FSConfiguration.getInt(conf, "lakefs", "key3", 99)); 49 Assert.assertEquals(99, FSConfiguration.getInt(conf, "lakefs", "missing", 99)); 50 Assert.assertThrows(NumberFormatException.class, () -> FSConfiguration.getInt(conf, "lakefs", "bad.key", 99)); 51 } 52 @Test 53 public void testGetMap(){ 54 Configuration conf = new Configuration(false); 55 conf.set("fs.lakefs.map1", "k1:v1"); 56 conf.set("fs.lakefs.map2", "k1:v1,k2:v2,k3:v3"); 57 conf.set("fs.lakefs.map3", "k1:v1,k2:v2,"); 58 conf.set("fs.lakefs.map4", ""); 59 Assert.assertEquals(new HashMap<String, String>() {{ 60 put("k1", "v1"); 61 }}, FSConfiguration.getMap(conf, "lakefs", "map1")); 62 Assert.assertEquals(new HashMap<String, String>() {{ 63 put("k1", "v1"); 64 put("k2", "v2"); 65 put("k3", "v3"); 66 }}, FSConfiguration.getMap(conf, "lakefs", "map2")); 67 Assert.assertEquals(new HashMap<String, String>() {{ 68 put("k1", "v1"); 69 put("k2", "v2"); 70 }}, FSConfiguration.getMap(conf, "lakefs", "map3")); 71 Assert.assertThrows( 72 ArrayIndexOutOfBoundsException.class, 73 () -> FSConfiguration.getMap(conf, "lakefs", "map4") 74 ); 75 Assert.assertNull(FSConfiguration.getMap(conf, "lakefs", "no-set")); 76 } 77 }