1 package net.sf.openrocket.preset;
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;
11 import org.junit.Before;
12 import org.junit.Test;
15 * Test application of ComponentPresets to NoseCone RocketComponents through
16 * the NoseCone.loadFromPreset mechanism.
18 * Test NoseCone is well defined.
20 * Test calling setters on NoseCone will clear the ComponentPreset.
23 public class NoseConeComponentTests extends BaseTestCase {
25 ComponentPreset preset;
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);
45 public void testComponentType() {
46 NoseCone nc = new NoseCone();
48 assertSame(ComponentPreset.Type.NOSE_CONE, nc.getPresetType());
52 public void testLoadFromPresetIsSane() {
53 NoseCone nc = new NoseCone();
55 nc.loadPreset(preset);
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);
66 assertFalse(nc.isForeRadiusAutomatic());
67 assertFalse(nc.isAftRadiusAutomatic());
68 assertTrue(nc.isFilled());
70 assertSame(preset.get(ComponentPreset.MATERIAL), nc.getMaterial());
71 assertEquals(100.0, nc.getMass(), 0.05);
75 public void changeLengthClearsPreset() {
76 NoseCone nc = new NoseCone();
78 nc.loadPreset(preset);
82 assertNull(nc.getPresetComponent());
86 public void changeAftRadiusClearsPreset() {
87 NoseCone nc = new NoseCone();
89 nc.loadPreset(preset);
93 assertNull(nc.getPresetComponent());
97 public void changeAftRadiusAutomaticClearsPreset() {
98 NoseCone nc = new NoseCone();
100 nc.loadPreset(preset);
102 nc.setAftRadiusAutomatic(true);
104 assertNull(nc.getPresetComponent());
108 public void changeAftShoulderRadiusClearsPreset() {
109 NoseCone nc = new NoseCone();
111 nc.loadPreset(preset);
113 nc.setAftShoulderRadius(2.0);
115 assertNull(nc.getPresetComponent());
119 public void changeAftSholderLengthLeavesPreset() {
120 NoseCone nc = new NoseCone();
122 nc.loadPreset(preset);
124 nc.setAftShoulderLength(2.0);
126 assertSame(preset, nc.getPresetComponent());
130 public void changeThicknessClearsPreset() {
131 NoseCone nc = new NoseCone();
133 nc.loadPreset(preset);
135 nc.setThickness(0.1);
137 assertNull(nc.getPresetComponent());
142 public void changeFilledClearsPreset() {
143 NoseCone nc = new NoseCone();
145 nc.loadPreset(preset);
149 assertNull(nc.getPresetComponent());
153 public void changeMaterialClearsPreset() {
154 NoseCone nc = new NoseCone();
156 nc.loadPreset(preset);
158 nc.setMaterial(Material.newMaterial(Material.Type.BULK, "new", 1.0, true));
160 assertNull(nc.getPresetComponent());
164 public void changeFinishLeavesPreset() {
165 NoseCone nc = new NoseCone();
167 nc.loadPreset(preset);
169 nc.setFinish(Finish.POLISHED);
171 assertSame(preset, nc.getPresetComponent());