280affec1fa5200b4153c959a5ca3d744d7d8cef
[debian/openrocket] / core / test / net / sf / openrocket / preset / TubeCouplerComponentTests.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.TubeCoupler;
7 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
8
9 import org.junit.Before;
10 import org.junit.Test;
11
12 /**
13  * Test application of ComponentPresets to TubeCoupler RocketComponents through
14  * the TubeCoupler.loadFromPreset mechanism.
15  * 
16  * Test TubeCoupler is well defined.
17  * 
18  * Test calling setters on TubeCoupler will clear the ComponentPreset.
19  * 
20  */
21 public class TubeCouplerComponentTests extends BaseTestCase {
22
23         ComponentPreset preset;
24         
25         @Before
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);
36         }
37
38         @Test
39         public void testComponentType() {
40                 TubeCoupler tc = new TubeCoupler();
41                 
42                 assertSame( ComponentPreset.Type.TUBE_COUPLER, tc.getPresetType() );
43         }
44         
45         @Test
46         public void testLoadFromPresetIsSane() {
47                 TubeCoupler tc = new TubeCoupler();
48                 
49                 tc.loadPreset(preset);
50                 
51                 assertEquals( 2.0, tc.getLength(), 0.0 );
52                 assertEquals( 1.0, tc.getOuterRadius(), 0.0 );
53                 assertEquals( 0.5, tc.getInnerRadius(), 0.0 );
54                 
55                 assertFalse( tc.isInnerRadiusAutomatic() );
56                 assertFalse( tc.isOuterRadiusAutomatic() );
57                 
58                 assertSame( preset.get( ComponentPreset.MATERIAL), tc.getMaterial() );
59                 assertEquals( 100.0, tc.getMass(), 0.05);
60         }
61         
62         @Test
63         public void changeLengthLeavesPreset() {
64                 TubeCoupler tc = new TubeCoupler();
65                 
66                 tc.loadPreset(preset);
67
68                 tc.setLength(1.0);
69                 
70                 assertSame( preset, tc.getPresetComponent() );
71         }
72
73         @Test
74         public void changeODClearsPreset() {
75                 TubeCoupler tc = new TubeCoupler();
76                 
77                 tc.loadPreset(preset);
78
79                 tc.setOuterRadius(2.0);
80                 
81                 assertNull( tc.getPresetComponent() );
82         }
83
84         @Test
85         public void changeIDClearsPreset() {
86                 TubeCoupler tc = new TubeCoupler();
87                 
88                 tc.loadPreset(preset);
89
90                 tc.setInnerRadius(0.75);
91                 
92                 assertNull( tc.getPresetComponent() );
93         }
94
95         @Test
96         public void changeThicknessClearsPreset() {
97                 TubeCoupler tc = new TubeCoupler();
98                 
99                 tc.loadPreset(preset);
100
101                 tc.setThickness(0.1);
102                 
103                 assertNull( tc.getPresetComponent() );
104         }
105
106         @Test
107         public void changeMaterialClearsPreset() {
108                 TubeCoupler tc = new TubeCoupler();
109                 
110                 tc.loadPreset(preset);
111
112                 tc.setMaterial( Material.newUserMaterial(Material.Type.BULK,"new", 1.0));
113                 
114                 assertNull( tc.getPresetComponent() );
115         }
116
117 }