1 package net.sf.openrocket.preset;
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;
14 import org.junit.Before;
15 import org.junit.Test;
18 * Test application of ComponentPresets to Transition RocketComponents through
19 * the Transition.loadFromPreset mechanism.
21 * Test Transition is well defined.
23 * Test calling setters on Transition will clear the ComponentPreset.
26 public class TransitionComponentTests extends BaseTestCase {
28 ComponentPreset preset;
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);
51 public void testComponentType() {
52 Transition tr = new Transition();
54 assertSame( ComponentPreset.Type.TRANSITION, tr.getPresetType() );
58 public void testLoadFromPresetIsSane() {
59 Transition tr = new Transition();
61 tr.loadPreset(preset);
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 );
71 assertFalse( tr.isForeRadiusAutomatic() );
72 assertFalse( tr.isAftRadiusAutomatic() );
73 assertTrue( tr.isFilled() );
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());
81 public void changeLengthClearsPreset() {
82 Transition tr = new Transition();
84 tr.loadPreset(preset);
88 assertNull( tr.getPresetComponent() );
92 public void changeAftRadiusClearsPreset() {
93 Transition tr = new Transition();
95 tr.loadPreset(preset);
99 assertNull( tr.getPresetComponent() );
103 public void changeAftRadiusAutomaticClearsPreset() {
104 Transition tr = new Transition();
106 tr.loadPreset(preset);
108 tr.setAftRadiusAutomatic(true);
110 assertNull( tr.getPresetComponent() );
114 public void changeForeRadiusClearsPreset() {
115 Transition tr = new Transition();
117 tr.loadPreset(preset);
119 tr.setForeRadius(2.0);
121 assertNull( tr.getPresetComponent() );
125 public void changeForeRadiusAutomaticClearsPreset() {
126 Transition tr = new Transition();
128 tr.loadPreset(preset);
130 tr.setForeRadiusAutomatic(true);
132 assertNull( tr.getPresetComponent() );
136 public void changeForeShoulderRadiusClearsPreset() {
137 Transition tr = new Transition();
139 tr.loadPreset(preset);
141 tr.setForeShoulderRadius(2.0);
143 assertNull( tr.getPresetComponent() );
147 public void changeAftShoulderRadiusClearsPreset() {
148 Transition tr = new Transition();
150 tr.loadPreset(preset);
152 tr.setAftShoulderRadius(2.0);
154 assertNull( tr.getPresetComponent() );
158 public void changeAftSholderLengthLeavesPreset() {
159 Transition tr = new Transition();
161 tr.loadPreset(preset);
163 tr.setAftShoulderLength(2.0);
165 assertSame( preset, tr.getPresetComponent() );
169 public void changeThicknessClearsPreset() {
170 Transition tr = new Transition();
172 tr.loadPreset(preset);
174 tr.setThickness(0.1);
176 assertNull( tr.getPresetComponent() );
181 public void changeFilledClearsPreset() {
182 Transition tr = new Transition();
184 tr.loadPreset(preset);
188 assertNull( tr.getPresetComponent() );
192 public void changeMaterialClearsPreset() {
193 Transition tr = new Transition();
195 tr.loadPreset(preset);
197 tr.setMaterial( new Material.Bulk("new", 1.0, true));
199 assertNull( tr.getPresetComponent() );
203 public void changeFinishLeavesPreset() {
204 Transition tr = new Transition();
206 tr.loadPreset(preset);
208 tr.setFinish( Finish.POLISHED );
210 assertSame( preset, tr.getPresetComponent() );