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.NoseCone;
7 import net.sf.openrocket.rocketcomponent.Transition;
8 import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
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.newUserMaterial(Material.Type.BULK,"test", 2.0));
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.newUserMaterial(Material.Type.BULK,"new", 1.0));
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() );