2b63865587b5142e81943bc1865b8e025df11668
[debian/openrocket] / core / test / net / sf / openrocket / preset / CenteringRingComponentTests.java
1 package net.sf.openrocket.preset;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertNull;
6 import static org.junit.Assert.assertSame;
7 import net.sf.openrocket.material.Material;
8 import net.sf.openrocket.motor.Manufacturer;
9 import net.sf.openrocket.rocketcomponent.CenteringRing;
10 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
11
12 import org.junit.Before;
13 import org.junit.Test;
14
15 /**
16  * Test application of ComponentPresets to CenteringRing RocketComponents through
17  * the CenteringRing.loadFromPreset mechanism.
18  * 
19  * Test CenteringRing is well defined.
20  * 
21  * Test calling setters on CenteringRing will clear the ComponentPreset.
22  * 
23  */
24 public class CenteringRingComponentTests extends BaseTestCase {
25
26         ComponentPreset preset;
27         
28         @Before
29         public void createPreset() throws Exception {
30                 TypedPropertyMap presetspec = new TypedPropertyMap();
31                 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.CENTERING_RING);
32                 presetspec.put( ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
33                 presetspec.put( ComponentPreset.PARTNO, "partno");
34                 presetspec.put( ComponentPreset.LENGTH, 2.0);
35                 presetspec.put( ComponentPreset.OUTER_DIAMETER, 2.0);
36                 presetspec.put( ComponentPreset.INNER_DIAMETER, 1.0);
37                 presetspec.put( ComponentPreset.MASS, 100.0);
38                 preset = ComponentPresetFactory.create(presetspec);
39         }
40
41         @Test
42         public void testComponentType() {
43                 CenteringRing cr = new CenteringRing();
44                 
45                 assertSame( ComponentPreset.Type.CENTERING_RING, cr.getPresetType() );
46         }
47         
48         @Test
49         public void testLoadFromPresetIsSane() {
50                 CenteringRing cr = new CenteringRing();
51                 
52                 cr.loadPreset(preset);
53                 
54                 assertEquals( 2.0, cr.getLength(), 0.0 );
55                 assertEquals( 1.0, cr.getOuterRadius(), 0.0 );
56                 assertEquals( 0.5, cr.getInnerRadius(), 0.0 );
57                 
58                 assertFalse( cr.isOuterRadiusAutomatic() );
59                 
60                 assertSame( preset.get( ComponentPreset.MATERIAL), cr.getMaterial() );
61                 assertEquals( 100.0, cr.getMass(), 0.05);
62         }
63         
64         @Test
65         public void changeLengthLeavesPreset() {
66                 CenteringRing cr = new CenteringRing();
67                 
68                 cr.loadPreset(preset);
69
70                 cr.setLength(1.0);
71                 
72                 assertSame( preset, cr.getPresetComponent() );
73         }
74
75         @Test
76         public void changeODClearsPreset() {
77                 CenteringRing cr = new CenteringRing();
78                 
79                 cr.loadPreset(preset);
80
81                 cr.setOuterRadius(2.0);
82                 
83                 assertNull( cr.getPresetComponent() );
84         }
85
86         @Test
87         public void changeIDClearsPreset() {
88                 CenteringRing cr = new CenteringRing();
89                 
90                 cr.loadPreset(preset);
91
92                 cr.setInnerRadius(0.75);
93                 
94                 assertNull( cr.getPresetComponent() );
95         }
96
97         @Test
98         public void changeThicknessClearsPreset() {
99                 CenteringRing cr = new CenteringRing();
100                 
101                 cr.loadPreset(preset);
102
103                 cr.setThickness(0.1);
104                 
105                 assertNull( cr.getPresetComponent() );
106         }
107
108         @Test
109         public void changeMaterialClearsPreset() {
110                 CenteringRing cr = new CenteringRing();
111                 
112                 cr.loadPreset(preset);
113
114                 cr.setMaterial( Material.newUserMaterial(Material.Type.BULK,"new", 1.0));
115                 
116                 assertNull( cr.getPresetComponent() );
117         }
118
119 }