1 87 package org.codehaus.loom.components.configuration.merger; 88 89 import junit.framework.TestCase; 90 import org.codehaus.dna.impl.ConfigurationUtil; 91 import org.codehaus.dna.impl.DefaultConfiguration; 92 import org.codehaus.loom.components.configuration.merger.ConfigurationMerger; 93 import org.codehaus.loom.components.configuration.merger.ConfigurationSplitter; 94 95 98 public class ConfigurationMergerTestCase 99 extends TestCase 100 { 101 public void testAttributeOnlyMerge() 102 throws Exception 103 { 104 final DefaultConfiguration result = new DefaultConfiguration( "a", "", 105 "" ); 106 result.setAttribute( "a", "1" ); 107 108 final DefaultConfiguration base = new DefaultConfiguration( "a", "", 109 "" ); 110 base.setAttribute( "a", "2" ); 111 112 final DefaultConfiguration layer = 113 new DefaultConfiguration( "a", "", "" ); 114 layer.setAttribute( "a", "1" ); 115 116 assertTrue( 117 ConfigurationUtil.equals( result, 118 ConfigurationMerger.merge( layer, base ) ) ); 119 assertTrue( ConfigurationUtil.equals( layer, 120 ConfigurationSplitter.split( 121 result, 122 base ) ) ); 123 } 124 125 public void testAddChild() 126 throws Exception 127 { 128 final DefaultConfiguration result = 129 new DefaultConfiguration( "a", "", "" ); 130 result.addChild( new DefaultConfiguration( "kid1", "", "" ) ); 131 result.addChild( new DefaultConfiguration( "kid2", "", "" ) ); 132 133 final DefaultConfiguration base = 134 new DefaultConfiguration( "a", "", "" ); 135 base.addChild( new DefaultConfiguration( "kid1", "", "" ) ); 136 137 final DefaultConfiguration layer = new DefaultConfiguration( "a", "", 138 "" ); 139 layer.addChild( new DefaultConfiguration( "kid2", "", "" ) ); 140 assertTrue( 141 ConfigurationUtil.equals( result, 142 ConfigurationMerger.merge( layer, base ) ) ); 143 assertTrue( ConfigurationUtil.equals( layer, 144 ConfigurationSplitter.split( 145 result, 146 base ) ) ); 147 } 148 149 public void testOverrideChild() 150 throws Exception 151 { 152 final DefaultConfiguration result = new DefaultConfiguration( "a", "", 153 "" ); 154 final DefaultConfiguration rkid1 = new DefaultConfiguration( "kid1", 155 "", 156 "" ); 157 rkid1.setAttribute( "test", "1" ); 158 result.addChild( rkid1 ); 159 160 final DefaultConfiguration base = new DefaultConfiguration( "a", "", 161 "" ); 162 final DefaultConfiguration bkid1 = new DefaultConfiguration( "kid1", 163 "", 164 "" ); 165 bkid1.setAttribute( "test", "0" ); 166 base.addChild( bkid1 ); 167 168 final DefaultConfiguration layer = new DefaultConfiguration( "a", "", 169 "" ); 170 final DefaultConfiguration lkid1 = new DefaultConfiguration( "kid1", 171 "", 172 "" ); 173 lkid1.setAttribute( "test", "1" ); 174 layer.addChild( lkid1 ); 175 176 assertTrue( !ConfigurationUtil.equals( result, 177 ConfigurationMerger.merge( 178 layer, 179 base ) ) ); 180 181 lkid1.setAttribute( "excalibur-configuration:merge", "true" ); 182 183 assertTrue( 184 ConfigurationUtil.equals( result, 185 ConfigurationMerger.merge( layer, base ) ) ); 186 assertTrue( ConfigurationUtil.equals( layer, 187 ConfigurationSplitter.split( 188 result, 189 base ) ) ); 190 } 191 } 192 | Popular Tags |