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.newUserMaterial(Material.Type.BULK,"new", 1.0));
114 assertNull( tc.getPresetComponent() );