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