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