github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/test/groovy/com/sap/piper/ConfigurationMergerTest.groovy (about)

     1  package com.sap.piper
     2  
     3  import org.junit.Assert
     4  import org.junit.Rule
     5  import org.junit.Test
     6  
     7  import com.lesfurets.jenkins.unit.BasePipelineTest
     8  
     9  import util.JenkinsResetDefaultCacheRule
    10  
    11  class ConfigurationMergerTest {
    12  
    13      @Rule
    14      public JenkinsResetDefaultCacheRule resetDefaultValueCacheRule = new JenkinsResetDefaultCacheRule()
    15  
    16      @Test
    17      void testMerge(){
    18          Map defaults = [dockerImage: 'mvn']
    19          Map parameters = [goals: 'install', flags: '']
    20          Set parameterKeys = ['flags']
    21          Map configuration = [flags: '-B']
    22          Set configurationKeys = ['flags']
    23          Map merged = ConfigurationMerger.merge(parameters, parameterKeys, configuration, configurationKeys, defaults)
    24          Assert.assertEquals('mvn', merged.dockerImage)
    25          Assert.assertNull(merged.goals)
    26          Assert.assertEquals('', merged.flags)
    27      }
    28  
    29      @Test
    30      void testMergeParameterWithDefault(){
    31          Map defaults = [nonErpDestinations: []]
    32          Map parameters = [nonErpDestinations: null]
    33          Set parameterKeys = ['nonErpDestinations']
    34          Map merged = ConfigurationMerger.merge(parameters, parameterKeys, defaults)
    35          Assert.assertEquals([], merged.nonErpDestinations)
    36      }
    37  
    38      @Test
    39      void testMergeDeepStructure(){
    40          Map defaults = [fruits: [apples: 1, oranges: 10, bananas: 0]]
    41          Map configuration = [fruits: [bananas: 50, cucumbers: 1000]]
    42          Set configurationKeys = ['fruits']
    43          Map parameters = [fruits: [apples: 18], veggie: []]
    44          Set parameterKeys = ['fruits']
    45          Map merged = ConfigurationMerger.merge(parameters, parameterKeys, configuration, configurationKeys, defaults)
    46          Assert.assertEquals(50, merged.fruits.bananas)
    47          Assert.assertEquals(18, merged.fruits.apples)
    48          Assert.assertEquals(10, merged.fruits.oranges)
    49          Assert.assertEquals(1000, merged.fruits.cucumbers)
    50          Assert.assertEquals(null, merged.veggie)
    51      }
    52  
    53      @Test
    54      void testMergeDeepStructureWithMissingDefaults(){
    55          Map defaults = [others:[apples: 18]]
    56          Map configuration = [fruits: [bananas: 50, cucumbers: 1000]]
    57          Set configurationKeys = ['fruits']
    58          Map merged = ConfigurationMerger.merge(configuration, configurationKeys, defaults)
    59          Assert.assertEquals(50, merged.fruits.bananas)
    60          Assert.assertEquals(18, merged.others.apples)
    61          Assert.assertEquals(1000, merged.fruits.cucumbers)
    62      }
    63  }