create changelog entry
[debian/openrocket] / core / test / net / sf / openrocket / util / MutableTest.java
1 package net.sf.openrocket.util;
2
3 import static org.junit.Assert.*;
4 import net.sf.openrocket.logging.TraceException;
5
6 import org.junit.Test;
7
8 public class MutableTest {
9         
10         @Test
11         public void testMutable() {
12                 Mutable m = new Mutable();
13                 Throwable t = null;
14                 
15                 m.check();
16                 m.check();
17                 assertTrue(m.isMutable());
18                 
19                 m.immute();
20                 
21                 try {
22                         m.check();
23                         fail();
24                 } catch (IllegalStateException e) {
25                         // Success
26                         t = e.getCause();
27                         assertTrue(t instanceof TraceException);
28                 }
29                 
30                 m.immute();
31                 
32                 try {
33                         m.check();
34                         fail();
35                 } catch (IllegalStateException e) {
36                         // Success
37                         assertTrue(e.getCause() == t);
38                 }
39         }
40         
41         
42         @Test
43         public void testClone() {
44                 Mutable m1 = new Mutable();
45                 Mutable m2 = m1.clone();
46                 
47                 assertTrue(m1.isMutable());
48                 assertTrue(m2.isMutable());
49                 
50                 m1.immute();
51                 
52                 assertFalse(m1.isMutable());
53                 assertTrue(m2.isMutable());
54         }
55         
56 }