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( new Material.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);
138 bt.setFilled( true );
140 assertNull( bt.getPresetComponent() );