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  }