e9c78e088461849f1ed36502d3ec941080caa997
[debian/openrocket] / core / test / net / sf / openrocket / preset / StreamerComponentTests.java
1 package net.sf.openrocket.preset;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNull;
5 import static org.junit.Assert.assertSame;
6 import net.sf.openrocket.material.Material;
7 import net.sf.openrocket.motor.Manufacturer;
8 import net.sf.openrocket.rocketcomponent.Streamer;
9 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
10
11 import org.junit.Before;
12 import org.junit.Test;
13
14 /**
15  * Test application of ComponentPresets to Streamer RocketComponents through
16  * the Streamer.loadFromPreset mechanism.
17  * 
18  * Test Streamer is well defined.
19  * 
20  * Test calling setters on Streamer will clear the ComponentPreset.
21  * 
22  */
23 public class StreamerComponentTests extends BaseTestCase {
24
25         ComponentPreset preset;
26         
27         @Before
28         public void createPreset() throws Exception {
29                 TypedPropertyMap presetspec = new TypedPropertyMap();
30                 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.STREAMER);
31                 presetspec.put( ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
32                 presetspec.put( ComponentPreset.PARTNO, "partno");
33                 presetspec.put( ComponentPreset.LENGTH, 20.0);
34                 presetspec.put( ComponentPreset.WIDTH, 2.0);
35                 Material m = new Material.Surface("testMaterial", 2.0, true);
36                 presetspec.put( ComponentPreset.MATERIAL, m);
37                 preset = ComponentPresetFactory.create(presetspec);
38         }
39
40         @Test
41         public void testComponentType() {
42                 Streamer cr = new Streamer();
43                 
44                 assertSame( ComponentPreset.Type.STREAMER, cr.getPresetType() );
45         }
46         
47         @Test
48         public void testLoadFromPresetIsSane() {
49                 Streamer cr = new Streamer();
50                 
51                 cr.loadPreset(preset);
52                 
53                 assertEquals( 20.0, cr.getStripLength(), 0.0 );
54                 assertEquals( 2.0, cr.getStripWidth(), 0.0 );
55                 assertEquals( 2.0, cr.getLength(), 0.0 );
56                 
57                 assertSame( preset.get( ComponentPreset.MATERIAL), cr.getMaterial() );
58                 assertEquals( 80.0, cr.getMass(), 0.05);
59         }
60         
61         @Test
62         public void changeLengthClearsPreset() {
63                 Streamer cr = new Streamer();
64                 
65                 cr.loadPreset(preset);
66
67                 cr.setStripLength(1.0);
68                 
69                 assertNull( cr.getPresetComponent() );
70         }
71
72         @Test
73         public void changeWidthClearsPreset() {
74                 Streamer cr = new Streamer();
75                 
76                 cr.loadPreset(preset);
77
78                 cr.setStripWidth(1.0);
79                 
80                 assertNull( cr.getPresetComponent() );
81         }
82
83         @Test
84         public void changeMaterialClearsPreset() {
85                 Streamer cr = new Streamer();
86                 
87                 cr.loadPreset(preset);
88
89                 cr.setMaterial( new Material.Surface("new", 1.0, true));
90                 
91                 assertNull( cr.getPresetComponent() );
92         }
93
94 }