bb70a6eb63df7b04e9e0a8dd52af2980005310ac
[debian/openrocket] / core / test / net / sf / openrocket / preset / BodyTubeComponentTests.java
1 package net.sf.openrocket.preset;
2
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;
9
10 import org.junit.Before;
11 import org.junit.Test;
12
13 /**
14  * Test application of ComponentPresets to BodyTube RocketComponents through
15  * the BodyTube.loadFromPreset mechanism.
16  * 
17  * Test BodyTube is well defined.
18  * 
19  * Test calling setters on BodyTube will clear the ComponentPreset.
20  * 
21  */
22 public class BodyTubeComponentTests extends BaseTestCase {
23
24         ComponentPreset preset;
25         
26         @Before
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);
37         }
38
39         @Test
40         public void testComponentType() {
41                 BodyTube bt = new BodyTube();
42                 
43                 assertSame( ComponentPreset.Type.BODY_TUBE, bt.getPresetType() );
44         }
45         
46         @Test
47         public void testLoadFromPresetIsSane() {
48                 BodyTube bt = new BodyTube();
49                 
50                 bt.loadPreset(preset);
51                 
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 );
56                 
57                 assertFalse( bt.isAftRadiusAutomatic() );
58                 assertFalse( bt.isFilled() );
59                 assertFalse( bt.isForeRadiusAutomatic() );
60                 assertFalse( bt.isOuterRadiusAutomatic() );
61                 
62                 assertSame( preset.get( ComponentPreset.MATERIAL), bt.getMaterial() );
63                 assertEquals( 100.0, bt.getMass(), 0.05);
64         }
65         
66         @Test
67         public void changeLengthLeavesPreset() {
68                 BodyTube bt = new BodyTube();
69                 
70                 bt.loadPreset(preset);
71
72                 bt.setLength(1.0);
73                 
74                 assertSame( preset, bt.getPresetComponent() );
75         }
76
77         @Test
78         public void changeODClearsPreset() {
79                 BodyTube bt = new BodyTube();
80                 
81                 bt.loadPreset(preset);
82
83                 bt.setOuterRadius(2.0);
84                 
85                 assertNull( bt.getPresetComponent() );
86         }
87
88         @Test
89         public void changeIDClearsPreset() {
90                 BodyTube bt = new BodyTube();
91                 
92                 bt.loadPreset(preset);
93
94                 bt.setInnerRadius(0.75);
95                 
96                 assertNull( bt.getPresetComponent() );
97         }
98
99         @Test
100         public void changeThicknessClearsPreset() {
101                 BodyTube bt = new BodyTube();
102                 
103                 bt.loadPreset(preset);
104
105                 bt.setThickness(0.1);
106                 
107                 assertNull( bt.getPresetComponent() );
108         }
109
110         @Test
111         public void changeMaterialClearsPreset() {
112                 BodyTube bt = new BodyTube();
113                 
114                 bt.loadPreset(preset);
115
116                 bt.setMaterial( Material.newUserMaterial(Material.Type.BULK,"new", 1.0));
117                 
118                 assertNull( bt.getPresetComponent() );
119         }
120
121         @Test
122         public void changeFinishLeavesPreset() {
123                 BodyTube bt = new BodyTube();
124                 
125                 bt.loadPreset(preset);
126
127                 bt.setFinish( Finish.POLISHED );
128                 
129                 assertSame( preset, bt.getPresetComponent() );
130         }
131
132         @Test
133         public void changeFillClearsPreset() {
134                 BodyTube bt = new BodyTube();
135                 
136                 bt.loadPreset(preset);
137
138                 bt.setFilled( true );
139                 
140                 assertNull( bt.getPresetComponent() );
141         }
142 }