1 50 package org.apache.excalibur.configuration.merged.test; 51 52 import junit.framework.TestCase; 53 54 import org.apache.avalon.framework.configuration.DefaultConfiguration; 55 import org.apache.excalibur.configuration.ConfigurationUtil; 56 import org.apache.excalibur.configuration.merged.ConfigurationMerger; 57 import org.apache.excalibur.configuration.merged.ConfigurationSplitter; 58 59 62 public class ConfigurationMergerTestCase extends TestCase 63 { 64 public ConfigurationMergerTestCase() 65 { 66 this( "Configuration merger and branching test" ); 67 } 68 69 public ConfigurationMergerTestCase( String s ) 70 { 71 super( s ); 72 } 73 74 public void testAttributeOnlyMerge() throws Exception 75 { 76 DefaultConfiguration result = new DefaultConfiguration( "a", "b" ); 77 result.setAttribute( "a", "1" ); 78 79 DefaultConfiguration base = new DefaultConfiguration( "a", "b" ); 80 base.setAttribute( "a", "2" ); 81 82 DefaultConfiguration layer = new DefaultConfiguration( "a", "b" ); 83 layer.setAttribute( "a", "1" ); 84 85 assertTrue( ConfigurationUtil.equals( result, ConfigurationMerger.merge( layer, base ) ) ); 86 assertTrue( ConfigurationUtil.equals( layer, ConfigurationSplitter.split( result, base ) )); 87 } 88 89 public void testAddChild() throws Exception 90 { 91 DefaultConfiguration result = new DefaultConfiguration( "a", "b" ); 92 result.addChild( new DefaultConfiguration( "kid1", "b" ) ); 93 result.addChild( new DefaultConfiguration( "kid2", "b" ) ); 94 95 DefaultConfiguration base = new DefaultConfiguration( "a", "b" ); 96 base.addChild( new DefaultConfiguration( "kid1", "b" ) ); 97 98 DefaultConfiguration layer = new DefaultConfiguration( "a", "b" ); 99 layer.addChild( new DefaultConfiguration( "kid2", "b" ) ); 100 101 assertTrue( ConfigurationUtil.equals( result, ConfigurationMerger.merge( layer, base ) ) ); 102 assertTrue( ConfigurationUtil.equals( layer, ConfigurationSplitter.split( result, base ) )); 103 } 104 105 public void testOverrideChild() throws Exception 106 { 107 DefaultConfiguration result = new DefaultConfiguration( "a", "b" ); 108 DefaultConfiguration rkid1 = new DefaultConfiguration( "kid1", "b" ); 109 rkid1.setAttribute( "test", "1" ); 110 result.addChild( rkid1 ); 111 112 DefaultConfiguration base = new DefaultConfiguration( "a", "b" ); 113 DefaultConfiguration bkid1 = new DefaultConfiguration( "kid1", "b" ); 114 bkid1.setAttribute( "test", "0" ); 115 base.addChild( bkid1 ); 116 117 DefaultConfiguration layer = new DefaultConfiguration( "a", "b" ); 118 DefaultConfiguration lkid1 = new DefaultConfiguration( "kid1", "b" ); 119 lkid1.setAttribute( "test", "1" ); 120 layer.addChild( lkid1 ); 121 122 assertTrue( !ConfigurationUtil.equals( result, ConfigurationMerger.merge( layer, base ) ) ); 123 124 lkid1.setAttribute( "excalibur-configuration:merge", "true" ); 125 126 assertTrue( ConfigurationUtil.equals( result, ConfigurationMerger.merge( layer, base ) ) ); 127 assertTrue( ConfigurationUtil.equals( layer, ConfigurationSplitter.split( result, base ) ) ); 128 } 129 } 130 | Popular Tags |