create changelog entry
[debian/openrocket] / core / test / net / sf / openrocket / preset / LaunchLugComponentTests.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.ExternalComponent.Finish;
7 import net.sf.openrocket.rocketcomponent.LaunchLug;
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 LaunchLug RocketComponents through
15  * the LaunchLug.loadFromPreset mechanism.
16  * 
17  * Test LaunchLug is well defined.
18  * 
19  * Test calling setters on LaunchLug will clear the ComponentPreset.
20  * 
21  */
22 public class LaunchLugComponentTests 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.LAUNCH_LUG);
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                 LaunchLug bt = new LaunchLug();
42                 
43                 assertSame(ComponentPreset.Type.LAUNCH_LUG, bt.getPresetType());
44         }
45         
46         @Test
47         public void testLoadFromPresetIsSane() {
48                 LaunchLug bt = new LaunchLug();
49                 
50                 bt.loadPreset(preset);
51                 
52                 assertEquals(2.0, bt.getLength(), 0.0);
53                 assertEquals(1.0, bt.getOuterRadius(), 0.0);
54                 assertEquals(0.5, bt.getInnerRadius(), 0.0);
55                 
56                 assertSame(preset.get(ComponentPreset.MATERIAL), bt.getMaterial());
57                 assertEquals(100.0, bt.getMass(), 0.05);
58         }
59         
60         @Test
61         public void changeLengthLeavesPreset() {
62                 LaunchLug bt = new LaunchLug();
63                 
64                 bt.loadPreset(preset);
65                 
66                 bt.setLength(1.0);
67                 
68                 assertSame(preset, bt.getPresetComponent());
69         }
70         
71         @Test
72         public void changeODClearsPreset() {
73                 LaunchLug bt = new LaunchLug();
74                 
75                 bt.loadPreset(preset);
76                 
77                 bt.setOuterRadius(2.0);
78                 
79                 assertNull(bt.getPresetComponent());
80         }
81         
82         @Test
83         public void changeIDClearsPreset() {
84                 LaunchLug bt = new LaunchLug();
85                 
86                 bt.loadPreset(preset);
87                 
88                 bt.setInnerRadius(0.75);
89                 
90                 assertNull(bt.getPresetComponent());
91         }
92         
93         @Test
94         public void changeThicknessClearsPreset() {
95                 LaunchLug bt = new LaunchLug();
96                 
97                 bt.loadPreset(preset);
98                 
99                 bt.setThickness(0.1);
100                 
101                 assertNull(bt.getPresetComponent());
102         }
103         
104         @Test
105         public void changeMaterialClearsPreset() {
106                 LaunchLug bt = new LaunchLug();
107                 
108                 bt.loadPreset(preset);
109                 
110                 bt.setMaterial(Material.newMaterial(Material.Type.BULK, "new", 1.0, true));
111                 
112                 assertNull(bt.getPresetComponent());
113         }
114         
115         @Test
116         public void changeFinishLeavesPreset() {
117                 LaunchLug bt = new LaunchLug();
118                 
119                 bt.loadPreset(preset);
120                 
121                 bt.setFinish(Finish.POLISHED);
122                 
123                 assertSame(preset, bt.getPresetComponent());
124         }
125         
126 }