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.Transition;
8 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
10 import org.junit.Before;
11 import org.junit.Test;
14 * Test application of ComponentPresets to Transition RocketComponents through
15 * the Transition.loadFromPreset mechanism.
17 * Test Transition is well defined.
19 * Test calling setters on Transition will clear the ComponentPreset.
22 public class TransitionComponentTests extends BaseTestCase {
24 ComponentPreset preset;
27 public void createPreset() throws Exception {
28 TypedPropertyMap presetspec = new TypedPropertyMap();
29 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.TRANSITION);
30 presetspec.put(ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
31 presetspec.put(ComponentPreset.PARTNO, "partno");
32 presetspec.put(ComponentPreset.LENGTH, 2.0);
33 presetspec.put(ComponentPreset.SHAPE, Transition.Shape.CONICAL);
34 presetspec.put(ComponentPreset.AFT_OUTER_DIAMETER, 2.0);
35 presetspec.put(ComponentPreset.FORE_OUTER_DIAMETER, 1.0);
36 presetspec.put(ComponentPreset.AFT_SHOULDER_LENGTH, 1.0);
37 presetspec.put(ComponentPreset.AFT_SHOULDER_DIAMETER, 1.0);
38 presetspec.put(ComponentPreset.FORE_SHOULDER_LENGTH, 1.0);
39 presetspec.put(ComponentPreset.FORE_SHOULDER_DIAMETER, 0.5);
40 presetspec.put(ComponentPreset.FILLED, true);
41 presetspec.put(ComponentPreset.MASS, 100.0);
42 presetspec.put(ComponentPreset.MATERIAL, Material.newMaterial(Material.Type.BULK, "test", 2.0, true));
43 preset = ComponentPresetFactory.create(presetspec);
47 public void testComponentType() {
48 Transition tr = new Transition();
50 assertSame(ComponentPreset.Type.TRANSITION, tr.getPresetType());
54 public void testLoadFromPresetIsSane() {
55 Transition tr = new Transition();
57 tr.loadPreset(preset);
59 assertEquals(2.0, tr.getLength(), 0.0);
60 assertSame(Transition.Shape.CONICAL, tr.getType());
61 assertEquals(1.0, tr.getAftRadius(), 0.0);
62 assertEquals(1.0, tr.getForeShoulderLength(), 0.0);
63 assertEquals(0.25, tr.getForeShoulderRadius(), 0.0);
64 assertEquals(0.25, tr.getForeShoulderThickness(), 0.0);
65 assertEquals(1.0, tr.getAftShoulderLength(), 0.0);
66 assertEquals(0.5, tr.getAftShoulderRadius(), 0.0);
67 assertEquals(0.5, tr.getAftShoulderThickness(), 0.0);
69 assertFalse(tr.isForeRadiusAutomatic());
70 assertFalse(tr.isAftRadiusAutomatic());
71 assertTrue(tr.isFilled());
73 assertSame(preset.get(ComponentPreset.MATERIAL), tr.getMaterial());
74 assertEquals(100.0, tr.getMass(), 1.0);
78 public void changeLengthClearsPreset() {
79 Transition tr = new Transition();
81 tr.loadPreset(preset);
85 assertNull(tr.getPresetComponent());
89 public void changeAftRadiusClearsPreset() {
90 Transition tr = new Transition();
92 tr.loadPreset(preset);
96 assertNull(tr.getPresetComponent());
100 public void changeAftRadiusAutomaticClearsPreset() {
101 Transition tr = new Transition();
103 tr.loadPreset(preset);
105 tr.setAftRadiusAutomatic(true);
107 assertNull(tr.getPresetComponent());
111 public void changeForeRadiusClearsPreset() {
112 Transition tr = new Transition();
114 tr.loadPreset(preset);
116 tr.setForeRadius(2.0);
118 assertNull(tr.getPresetComponent());
122 public void changeForeRadiusAutomaticClearsPreset() {
123 Transition tr = new Transition();
125 tr.loadPreset(preset);
127 tr.setForeRadiusAutomatic(true);
129 assertNull(tr.getPresetComponent());
133 public void changeForeShoulderRadiusClearsPreset() {
134 Transition tr = new Transition();
136 tr.loadPreset(preset);
138 tr.setForeShoulderRadius(2.0);
140 assertNull(tr.getPresetComponent());
144 public void changeAftShoulderRadiusClearsPreset() {
145 Transition tr = new Transition();
147 tr.loadPreset(preset);
149 tr.setAftShoulderRadius(2.0);
151 assertNull(tr.getPresetComponent());
155 public void changeAftSholderLengthLeavesPreset() {
156 Transition tr = new Transition();
158 tr.loadPreset(preset);
160 tr.setAftShoulderLength(2.0);
162 assertSame(preset, tr.getPresetComponent());
166 public void changeThicknessClearsPreset() {
167 Transition tr = new Transition();
169 tr.loadPreset(preset);
171 tr.setThickness(0.1);
173 assertNull(tr.getPresetComponent());
178 public void changeFilledClearsPreset() {
179 Transition tr = new Transition();
181 tr.loadPreset(preset);
185 assertNull(tr.getPresetComponent());
189 public void changeMaterialClearsPreset() {
190 Transition tr = new Transition();
192 tr.loadPreset(preset);
194 tr.setMaterial(Material.newMaterial(Material.Type.BULK, "new", 1.0, true));
196 assertNull(tr.getPresetComponent());
200 public void changeFinishLeavesPreset() {
201 Transition tr = new Transition();
203 tr.loadPreset(preset);
205 tr.setFinish(Finish.POLISHED);
207 assertSame(preset, tr.getPresetComponent());