De-localize Material and FlightDataType objects when persisting in ork files. Added...
[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.LaunchLug;
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 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.newUserMaterial(Material.Type.BULK,"new", 1.0));
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 }