create changelog entry
[debian/openrocket] / core / test / net / sf / openrocket / preset / TransitionComponentTests.java
1 package net.sf.openrocket.preset;
2
3 import static org.junit.Assert.*;
4 import net.sf.openrocket.material.Material;
5 import net.sf.openrocket.motor.Manufacturer;
6 import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
7 import net.sf.openrocket.rocketcomponent.Transition;
8 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
9
10 import org.junit.Before;
11 import org.junit.Test;
12
13 /**
14  * Test application of ComponentPresets to Transition RocketComponents through
15  * the Transition.loadFromPreset mechanism.
16  * 
17  * Test Transition is well defined.
18  * 
19  * Test calling setters on Transition will clear the ComponentPreset.
20  * 
21  */
22 public class TransitionComponentTests extends BaseTestCase {
23         
24         ComponentPreset preset;
25         
26         @Before
27         public void createPreset() throws Exception {
28                 TypedPropertyMap presetspec = new TypedPropertyMap();
29                 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.TRANSITION);
30                 presetspec.put(ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
31                 presetspec.put(ComponentPreset.PARTNO, "partno");
32                 presetspec.put(ComponentPreset.LENGTH, 2.0);
33                 presetspec.put(ComponentPreset.SHAPE, Transition.Shape.CONICAL);
34                 presetspec.put(ComponentPreset.AFT_OUTER_DIAMETER, 2.0);
35                 presetspec.put(ComponentPreset.FORE_OUTER_DIAMETER, 1.0);
36                 presetspec.put(ComponentPreset.AFT_SHOULDER_LENGTH, 1.0);
37                 presetspec.put(ComponentPreset.AFT_SHOULDER_DIAMETER, 1.0);
38                 presetspec.put(ComponentPreset.FORE_SHOULDER_LENGTH, 1.0);
39                 presetspec.put(ComponentPreset.FORE_SHOULDER_DIAMETER, 0.5);
40                 presetspec.put(ComponentPreset.FILLED, true);
41                 presetspec.put(ComponentPreset.MASS, 100.0);
42                 presetspec.put(ComponentPreset.MATERIAL, Material.newMaterial(Material.Type.BULK, "test", 2.0, true));
43                 preset = ComponentPresetFactory.create(presetspec);
44         }
45         
46         @Test
47         public void testComponentType() {
48                 Transition tr = new Transition();
49                 
50                 assertSame(ComponentPreset.Type.TRANSITION, tr.getPresetType());
51         }
52         
53         @Test
54         public void testLoadFromPresetIsSane() {
55                 Transition tr = new Transition();
56                 
57                 tr.loadPreset(preset);
58                 
59                 assertEquals(2.0, tr.getLength(), 0.0);
60                 assertSame(Transition.Shape.CONICAL, tr.getType());
61                 assertEquals(1.0, tr.getAftRadius(), 0.0);
62                 assertEquals(1.0, tr.getForeShoulderLength(), 0.0);
63                 assertEquals(0.25, tr.getForeShoulderRadius(), 0.0);
64                 assertEquals(0.25, tr.getForeShoulderThickness(), 0.0);
65                 assertEquals(1.0, tr.getAftShoulderLength(), 0.0);
66                 assertEquals(0.5, tr.getAftShoulderRadius(), 0.0);
67                 assertEquals(0.5, tr.getAftShoulderThickness(), 0.0);
68                 
69                 assertFalse(tr.isForeRadiusAutomatic());
70                 assertFalse(tr.isAftRadiusAutomatic());
71                 assertTrue(tr.isFilled());
72                 
73                 assertSame(preset.get(ComponentPreset.MATERIAL), tr.getMaterial());
74                 assertEquals(100.0, tr.getMass(), 1.0);
75         }
76         
77         @Test
78         public void changeLengthClearsPreset() {
79                 Transition tr = new Transition();
80                 
81                 tr.loadPreset(preset);
82                 
83                 tr.setLength(1.0);
84                 
85                 assertNull(tr.getPresetComponent());
86         }
87         
88         @Test
89         public void changeAftRadiusClearsPreset() {
90                 Transition tr = new Transition();
91                 
92                 tr.loadPreset(preset);
93                 
94                 tr.setAftRadius(2.0);
95                 
96                 assertNull(tr.getPresetComponent());
97         }
98         
99         @Test
100         public void changeAftRadiusAutomaticClearsPreset() {
101                 Transition tr = new Transition();
102                 
103                 tr.loadPreset(preset);
104                 
105                 tr.setAftRadiusAutomatic(true);
106                 
107                 assertNull(tr.getPresetComponent());
108         }
109         
110         @Test
111         public void changeForeRadiusClearsPreset() {
112                 Transition tr = new Transition();
113                 
114                 tr.loadPreset(preset);
115                 
116                 tr.setForeRadius(2.0);
117                 
118                 assertNull(tr.getPresetComponent());
119         }
120         
121         @Test
122         public void changeForeRadiusAutomaticClearsPreset() {
123                 Transition tr = new Transition();
124                 
125                 tr.loadPreset(preset);
126                 
127                 tr.setForeRadiusAutomatic(true);
128                 
129                 assertNull(tr.getPresetComponent());
130         }
131         
132         @Test
133         public void changeForeShoulderRadiusClearsPreset() {
134                 Transition tr = new Transition();
135                 
136                 tr.loadPreset(preset);
137                 
138                 tr.setForeShoulderRadius(2.0);
139                 
140                 assertNull(tr.getPresetComponent());
141         }
142         
143         @Test
144         public void changeAftShoulderRadiusClearsPreset() {
145                 Transition tr = new Transition();
146                 
147                 tr.loadPreset(preset);
148                 
149                 tr.setAftShoulderRadius(2.0);
150                 
151                 assertNull(tr.getPresetComponent());
152         }
153         
154         @Test
155         public void changeAftSholderLengthLeavesPreset() {
156                 Transition tr = new Transition();
157                 
158                 tr.loadPreset(preset);
159                 
160                 tr.setAftShoulderLength(2.0);
161                 
162                 assertSame(preset, tr.getPresetComponent());
163         }
164         
165         @Test
166         public void changeThicknessClearsPreset() {
167                 Transition tr = new Transition();
168                 
169                 tr.loadPreset(preset);
170                 
171                 tr.setThickness(0.1);
172                 
173                 assertNull(tr.getPresetComponent());
174         }
175         
176         
177         @Test
178         public void changeFilledClearsPreset() {
179                 Transition tr = new Transition();
180                 
181                 tr.loadPreset(preset);
182                 
183                 tr.setFilled(false);
184                 
185                 assertNull(tr.getPresetComponent());
186         }
187         
188         @Test
189         public void changeMaterialClearsPreset() {
190                 Transition tr = new Transition();
191                 
192                 tr.loadPreset(preset);
193                 
194                 tr.setMaterial(Material.newMaterial(Material.Type.BULK, "new", 1.0, true));
195                 
196                 assertNull(tr.getPresetComponent());
197         }
198         
199         @Test
200         public void changeFinishLeavesPreset() {
201                 Transition tr = new Transition();
202                 
203                 tr.loadPreset(preset);
204                 
205                 tr.setFinish(Finish.POLISHED);
206                 
207                 assertSame(preset, tr.getPresetComponent());
208         }
209         
210 }