1   package net.sf.msplice.model;
2   
3   import org.jmock.Mock;
4   import org.jmock.MockObjectTestCase;
5   
6   import junit.framework.TestCase;
7   import net.sf.msplice.model.value.AbstractValue;
8   import net.sf.msplice.visitor.IVisitor;
9   
10  public class DefaultValueHolderTest extends MockObjectTestCase {
11  
12  	private DefaultValueHolder valueHolder = null;
13  
14  	private AbstractValue fallbackValue = null;
15  
16  	private AbstractValue testValue = null;
17  
18  	private AbstractValue nullValue = null;
19  
20  	@Override
21  	protected void setUp() throws Exception {
22  		super.setUp();
23  
24  		valueHolder = new DefaultValueHolder();
25  
26  		fallbackValue = DefaultValueHolder.FALLBACK_VALUE;
27  		testValue = new TestValue();
28  		nullValue = null;
29  	}
30  
31  	public void testInitialValue() throws Exception {
32  
33  		assertEquals("Check the initial Value", fallbackValue, valueHolder
34  				.getDefaultValue());
35  
36  	}
37  
38  	public void testSetDefaultValue() {
39  
40  		valueHolder.setDefaultValue(testValue);
41  		AbstractValue resultValue = valueHolder.getDefaultValue();
42  
43  		assertEquals("Chect the Value", testValue, resultValue);
44  	}
45  
46  	public void testSetNullValue() throws Exception {
47  
48  		valueHolder.setDefaultValue(nullValue);
49  		AbstractValue resultValue = valueHolder.getDefaultValue();
50  
51  		assertEquals("Chect the Value", fallbackValue, resultValue);
52  	}
53  	
54  
55  	public void testVisitor() throws Exception {
56  
57  		// set up
58  		Mock mockVisitor = mock(IVisitor.class);
59  
60  		// expectations
61  		mockVisitor.expects(once()).method("visit").with(eq(valueHolder));
62  
63  		valueHolder.accept((IVisitor) mockVisitor.proxy());
64  	}
65  
66  	// --------------------------------------------------------------------------------
67  	// test support classes
68  	// --------------------------------------------------------------------------------
69  
70  	public class TestValue extends AbstractValue {
71  	}
72  
73  }