Material localization support
[debian/openrocket] / core / test / net / sf / openrocket / preset / StreamerComponentTests.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.Streamer;
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 Streamer RocketComponents through
14  * the Streamer.loadFromPreset mechanism.
15  * 
16  * Test Streamer is well defined.
17  * 
18  * Test calling setters on Streamer will clear the ComponentPreset.
19  * 
20  */
21 public class StreamerComponentTests 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.STREAMER);
29                 presetspec.put(ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
30                 presetspec.put(ComponentPreset.PARTNO, "partno");
31                 presetspec.put(ComponentPreset.LENGTH, 20.0);
32                 presetspec.put(ComponentPreset.WIDTH, 2.0);
33                 Material m = Material.newMaterial(Material.Type.SURFACE, "testMaterial", 2.0, true);
34                 presetspec.put(ComponentPreset.MATERIAL, m);
35                 preset = ComponentPresetFactory.create(presetspec);
36         }
37         
38         @Test
39         public void testComponentType() {
40                 Streamer cr = new Streamer();
41                 
42                 assertSame(ComponentPreset.Type.STREAMER, cr.getPresetType());
43         }
44         
45         @Test
46         public void testLoadFromPresetIsSane() {
47                 Streamer cr = new Streamer();
48                 
49                 cr.loadPreset(preset);
50                 
51                 assertEquals(20.0, cr.getStripLength(), 0.0);
52                 assertEquals(2.0, cr.getStripWidth(), 0.0);
53                 assertEquals(2.0, cr.getLength(), 0.0);
54                 
55                 assertSame(preset.get(ComponentPreset.MATERIAL), cr.getMaterial());
56                 assertEquals(80.0, cr.getMass(), 0.05);
57         }
58         
59         @Test
60         public void changeLengthClearsPreset() {
61                 Streamer cr = new Streamer();
62                 
63                 cr.loadPreset(preset);
64                 
65                 cr.setStripLength(1.0);
66                 
67                 assertNull(cr.getPresetComponent());
68         }
69         
70         @Test
71         public void changeWidthClearsPreset() {
72                 Streamer cr = new Streamer();
73                 
74                 cr.loadPreset(preset);
75                 
76                 cr.setStripWidth(1.0);
77                 
78                 assertNull(cr.getPresetComponent());
79         }
80         
81         @Test
82         public void changeMaterialClearsPreset() {
83                 Streamer cr = new Streamer();
84                 
85                 cr.loadPreset(preset);
86                 
87                 cr.setMaterial(Material.newMaterial(Material.Type.SURFACE, "new", 1.0, true));
88                 
89                 assertNull(cr.getPresetComponent());
90         }
91         
92 }