8a3084045b33f339746694797ddc771aeb5dda77
[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.TRANSITION);
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( 0.25, tr.getForeShoulderThickness(), 0.0 );
69                 assertEquals( 1.0, tr.getAftShoulderLength(), 0.0 );
70                 assertEquals( 0.5, tr.getAftShoulderRadius(), 0.0 );
71                 assertEquals( 0.5, tr.getAftShoulderThickness(), 0.0 );
72
73                 assertFalse( tr.isForeRadiusAutomatic() );
74                 assertFalse( tr.isAftRadiusAutomatic() );
75                 assertTrue( tr.isFilled() );
76                 
77                 assertSame( preset.get( ComponentPreset.MATERIAL), tr.getMaterial() );
78                 assertEquals( 100.0, tr.getMass(), 1.0);
79         }
80         
81         @Test
82         public void changeLengthClearsPreset() {
83                 Transition tr = new Transition();
84                 
85                 tr.loadPreset(preset);
86
87                 tr.setLength(1.0);
88                 
89                 assertNull( tr.getPresetComponent() );
90         }
91
92         @Test
93         public void changeAftRadiusClearsPreset() {
94                 Transition tr = new Transition();
95                 
96                 tr.loadPreset(preset);
97
98                 tr.setAftRadius(2.0);
99                 
100                 assertNull( tr.getPresetComponent() );
101         }
102
103         @Test
104         public void changeAftRadiusAutomaticClearsPreset() {
105                 Transition tr = new Transition();
106                 
107                 tr.loadPreset(preset);
108
109                 tr.setAftRadiusAutomatic(true);
110                 
111                 assertNull( tr.getPresetComponent() );
112         }
113
114         @Test
115         public void changeForeRadiusClearsPreset() {
116                 Transition tr = new Transition();
117                 
118                 tr.loadPreset(preset);
119
120                 tr.setForeRadius(2.0);
121                 
122                 assertNull( tr.getPresetComponent() );
123         }
124
125         @Test
126         public void changeForeRadiusAutomaticClearsPreset() {
127                 Transition tr = new Transition();
128                 
129                 tr.loadPreset(preset);
130
131                 tr.setForeRadiusAutomatic(true);
132                 
133                 assertNull( tr.getPresetComponent() );
134         }
135
136         @Test
137         public void changeForeShoulderRadiusClearsPreset() {
138                 Transition tr = new Transition();
139                 
140                 tr.loadPreset(preset);
141
142                 tr.setForeShoulderRadius(2.0);
143                 
144                 assertNull( tr.getPresetComponent() );
145         }
146
147         @Test
148         public void changeAftShoulderRadiusClearsPreset() {
149                 Transition tr = new Transition();
150                 
151                 tr.loadPreset(preset);
152
153                 tr.setAftShoulderRadius(2.0);
154                 
155                 assertNull( tr.getPresetComponent() );
156         }
157
158         @Test
159         public void changeAftSholderLengthLeavesPreset() {
160                 Transition tr = new Transition();
161                 
162                 tr.loadPreset(preset);
163
164                 tr.setAftShoulderLength(2.0);
165                 
166                 assertSame( preset, tr.getPresetComponent() );
167         }
168
169         @Test
170         public void changeThicknessClearsPreset() {
171                 Transition tr = new Transition();
172                 
173                 tr.loadPreset(preset);
174
175                 tr.setThickness(0.1);
176                 
177                 assertNull( tr.getPresetComponent() );
178         }
179
180
181         @Test
182         public void changeFilledClearsPreset() {
183                 Transition tr = new Transition();
184                 
185                 tr.loadPreset(preset);
186
187                 tr.setFilled(false);
188                 
189                 assertNull( tr.getPresetComponent() );
190         }
191
192         @Test
193         public void changeMaterialClearsPreset() {
194                 Transition tr = new Transition();
195                 
196                 tr.loadPreset(preset);
197
198                 tr.setMaterial( new Material.Bulk("new", 1.0, true));
199                 
200                 assertNull( tr.getPresetComponent() );
201         }
202
203         @Test
204         public void changeFinishLeavesPreset() {
205                 Transition tr = new Transition();
206                 
207                 tr.loadPreset(preset);
208
209                 tr.setFinish( Finish.POLISHED );
210                 
211                 assertSame( preset, tr.getPresetComponent() );
212         }
213
214 }