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.TubeCoupler;
7 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
9 import org.junit.Before;
10 import org.junit.Test;
13 * Test application of ComponentPresets to TubeCoupler RocketComponents through
14 * the TubeCoupler.loadFromPreset mechanism.
16 * Test TubeCoupler is well defined.
18 * Test calling setters on TubeCoupler will clear the ComponentPreset.
21 public class TubeCouplerComponentTests extends BaseTestCase {
23 ComponentPreset preset;
26 public void createPreset() throws Exception {
27 TypedPropertyMap presetspec = new TypedPropertyMap();
28 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.TUBE_COUPLER);
29 presetspec.put(ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
30 presetspec.put(ComponentPreset.PARTNO, "partno");
31 presetspec.put(ComponentPreset.LENGTH, 2.0);
32 presetspec.put(ComponentPreset.OUTER_DIAMETER, 2.0);
33 presetspec.put(ComponentPreset.INNER_DIAMETER, 1.0);
34 presetspec.put(ComponentPreset.MASS, 100.0);
35 preset = ComponentPresetFactory.create(presetspec);
39 public void testComponentType() {
40 TubeCoupler tc = new TubeCoupler();
42 assertSame(ComponentPreset.Type.TUBE_COUPLER, tc.getPresetType());
46 public void testLoadFromPresetIsSane() {
47 TubeCoupler tc = new TubeCoupler();
49 tc.loadPreset(preset);
51 assertEquals(2.0, tc.getLength(), 0.0);
52 assertEquals(1.0, tc.getOuterRadius(), 0.0);
53 assertEquals(0.5, tc.getInnerRadius(), 0.0);
55 assertFalse(tc.isInnerRadiusAutomatic());
56 assertFalse(tc.isOuterRadiusAutomatic());
58 assertSame(preset.get(ComponentPreset.MATERIAL), tc.getMaterial());
59 assertEquals(100.0, tc.getMass(), 0.05);
63 public void changeLengthLeavesPreset() {
64 TubeCoupler tc = new TubeCoupler();
66 tc.loadPreset(preset);
70 assertSame(preset, tc.getPresetComponent());
74 public void changeODClearsPreset() {
75 TubeCoupler tc = new TubeCoupler();
77 tc.loadPreset(preset);
79 tc.setOuterRadius(2.0);
81 assertNull(tc.getPresetComponent());
85 public void changeIDClearsPreset() {
86 TubeCoupler tc = new TubeCoupler();
88 tc.loadPreset(preset);
90 tc.setInnerRadius(0.75);
92 assertNull(tc.getPresetComponent());
96 public void changeThicknessClearsPreset() {
97 TubeCoupler tc = new TubeCoupler();
99 tc.loadPreset(preset);
101 tc.setThickness(0.1);
103 assertNull(tc.getPresetComponent());
107 public void changeMaterialClearsPreset() {
108 TubeCoupler tc = new TubeCoupler();
110 tc.loadPreset(preset);
112 tc.setMaterial(Material.newMaterial(Material.Type.BULK, "new", 1.0, true));
114 assertNull(tc.getPresetComponent());