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