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.BodyTube;
7 import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
8 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
10 import org.junit.Before;
11 import org.junit.Test;
14 * Test application of ComponentPresets to BodyTube RocketComponents through
15 * the BodyTube.loadFromPreset mechanism.
17 * Test BodyTube is well defined.
19 * Test calling setters on BodyTube will clear the ComponentPreset.
22 public class BodyTubeComponentTests extends BaseTestCase {
24 ComponentPreset preset;
27 public void createPreset() throws Exception {
28 TypedPropertyMap presetspec = new TypedPropertyMap();
29 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.BODY_TUBE);
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.OUTER_DIAMETER, 2.0);
34 presetspec.put(ComponentPreset.INNER_DIAMETER, 1.0);
35 presetspec.put(ComponentPreset.MASS, 100.0);
36 preset = ComponentPresetFactory.create(presetspec);
40 public void testComponentType() {
41 BodyTube bt = new BodyTube();
43 assertSame(ComponentPreset.Type.BODY_TUBE, bt.getPresetType());
47 public void testLoadFromPresetIsSane() {
48 BodyTube bt = new BodyTube();
50 bt.loadPreset(preset);
52 assertEquals(2.0, bt.getLength(), 0.0);
53 assertEquals(1.0, bt.getOuterRadius(), 0.0);
54 assertEquals(1.0, bt.getAftRadius(), 0.0);
55 assertEquals(0.5, bt.getInnerRadius(), 0.0);
57 assertFalse(bt.isAftRadiusAutomatic());
58 assertFalse(bt.isFilled());
59 assertFalse(bt.isForeRadiusAutomatic());
60 assertFalse(bt.isOuterRadiusAutomatic());
62 assertSame(preset.get(ComponentPreset.MATERIAL), bt.getMaterial());
63 assertEquals(100.0, bt.getMass(), 0.05);
67 public void changeLengthLeavesPreset() {
68 BodyTube bt = new BodyTube();
70 bt.loadPreset(preset);
74 assertSame(preset, bt.getPresetComponent());
78 public void changeODClearsPreset() {
79 BodyTube bt = new BodyTube();
81 bt.loadPreset(preset);
83 bt.setOuterRadius(2.0);
85 assertNull(bt.getPresetComponent());
89 public void changeIDClearsPreset() {
90 BodyTube bt = new BodyTube();
92 bt.loadPreset(preset);
94 bt.setInnerRadius(0.75);
96 assertNull(bt.getPresetComponent());
100 public void changeThicknessClearsPreset() {
101 BodyTube bt = new BodyTube();
103 bt.loadPreset(preset);
105 bt.setThickness(0.1);
107 assertNull(bt.getPresetComponent());
111 public void changeMaterialClearsPreset() {
112 BodyTube bt = new BodyTube();
114 bt.loadPreset(preset);
116 bt.setMaterial(Material.newMaterial(Material.Type.BULK, "new", 1.0, true));
118 assertNull(bt.getPresetComponent());
122 public void changeFinishLeavesPreset() {
123 BodyTube bt = new BodyTube();
125 bt.loadPreset(preset);
127 bt.setFinish(Finish.POLISHED);
129 assertSame(preset, bt.getPresetComponent());
133 public void changeFillClearsPreset() {
134 BodyTube bt = new BodyTube();
136 bt.loadPreset(preset);
140 assertNull(bt.getPresetComponent());