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 }