Material localization support
[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.newMaterial(Material.Type.BULK, "new", 1.0, true));
113                 
114                 assertNull(tc.getPresetComponent());
115         }
116         
117 }