Material localization support
[debian/openrocket] / core / test / net / sf / openrocket / preset / ParachuterComponentTests.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.Parachute;
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 Parachute RocketComponents through
14  * the Parachute.loadFromPreset mechanism.
15  * 
16  * Test Parachute is well defined.
17  * 
18  * Test calling setters on Parachute will clear the ComponentPreset.
19  * 
20  */
21 public class ParachuterComponentTests 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.PARACHUTE);
29                 presetspec.put(ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
30                 presetspec.put(ComponentPreset.PARTNO, "partno");
31                 presetspec.put(ComponentPreset.DIAMETER, 20.0);
32                 presetspec.put(ComponentPreset.LINE_COUNT, 8);
33                 presetspec.put(ComponentPreset.LINE_LENGTH, 12.0);
34                 Material m = Material.newMaterial(Material.Type.SURFACE, "testMaterial", 2.0, true);
35                 presetspec.put(ComponentPreset.MATERIAL, m);
36                 m = Material.newMaterial(Material.Type.LINE, "testLineMaterial", 3, true);
37                 presetspec.put(ComponentPreset.LINE_MATERIAL, m);
38                 preset = ComponentPresetFactory.create(presetspec);
39         }
40         
41         @Test
42         public void testComponentType() {
43                 Parachute cr = new Parachute();
44                 
45                 assertSame(ComponentPreset.Type.PARACHUTE, cr.getPresetType());
46         }
47         
48         @Test
49         public void testLoadFromPresetIsSane() {
50                 Parachute cr = new Parachute();
51                 
52                 cr.loadPreset(preset);
53                 
54                 assertEquals(20.0, cr.getDiameter(), 0.0);
55                 assertEquals(8, cr.getLineCount(), 0.0);
56                 assertEquals(12.0, cr.getLineLength(), 0.0);
57                 
58                 assertSame(preset.get(ComponentPreset.MATERIAL), cr.getMaterial());
59                 assertSame(preset.get(ComponentPreset.LINE_MATERIAL), cr.getLineMaterial());
60         }
61         
62         @Test
63         public void changeDiameterClearsPreset() {
64                 Parachute cr = new Parachute();
65                 
66                 cr.loadPreset(preset);
67                 
68                 cr.setDiameter(1.0);
69                 
70                 assertNull(cr.getPresetComponent());
71         }
72         
73         @Test
74         public void changeAreaClearsPreset() {
75                 Parachute cr = new Parachute();
76                 
77                 cr.loadPreset(preset);
78                 
79                 cr.setArea(1.0);
80                 
81                 assertNull(cr.getPresetComponent());
82         }
83         
84         @Test
85         public void changeLineCountClearsPreset() {
86                 Parachute cr = new Parachute();
87                 
88                 cr.loadPreset(preset);
89                 
90                 cr.setLineCount(12);
91                 
92                 assertNull(cr.getPresetComponent());
93         }
94         
95         @Test
96         public void changeLineLengthLeavesPreset() {
97                 Parachute cr = new Parachute();
98                 
99                 cr.loadPreset(preset);
100                 
101                 cr.setLineLength(24);
102                 
103                 assertSame(preset, cr.getPresetComponent());
104         }
105         
106         @Test
107         public void changeMaterialClearsPreset() {
108                 Parachute cr = new Parachute();
109                 
110                 cr.loadPreset(preset);
111                 
112                 cr.setMaterial(Material.newMaterial(Material.Type.SURFACE, "new", 1.0, true));
113                 
114                 assertNull(cr.getPresetComponent());
115         }
116         
117         @Test
118         public void changeLineMaterialLeavesPreset() {
119                 Parachute cr = new Parachute();
120                 
121                 cr.loadPreset(preset);
122                 
123                 cr.setLineMaterial(Material.newMaterial(Material.Type.LINE, "new", 1.0, true));
124                 
125                 assertSame(preset, cr.getPresetComponent());
126         }
127         
128 }