1 package net.sf.openrocket.preset;
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.Parachute;
9 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
11 import org.junit.Before;
12 import org.junit.Test;
15 * Test application of ComponentPresets to Parachute RocketComponents through
16 * the Parachute.loadFromPreset mechanism.
18 * Test Parachute is well defined.
20 * Test calling setters on Parachute will clear the ComponentPreset.
23 public class ParachuterComponentTests extends BaseTestCase {
25 ComponentPreset preset;
28 public void createPreset() throws Exception {
29 TypedPropertyMap presetspec = new TypedPropertyMap();
30 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.PARACHUTE);
31 presetspec.put( ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
32 presetspec.put( ComponentPreset.PARTNO, "partno");
33 presetspec.put( ComponentPreset.DIAMETER, 20.0);
34 presetspec.put( ComponentPreset.LINE_COUNT, 8);
35 presetspec.put( ComponentPreset.LINE_LENGTH, 12.0);
36 Material m = Material.newUserMaterial(Material.Type.SURFACE,"testMaterial", 2.0);
37 presetspec.put( ComponentPreset.MATERIAL, m);
38 m = Material.newUserMaterial(Material.Type.LINE,"testLineMaterial", 3);
39 presetspec.put( ComponentPreset.LINE_MATERIAL, m);
40 preset = ComponentPresetFactory.create(presetspec);
44 public void testComponentType() {
45 Parachute cr = new Parachute();
47 assertSame( ComponentPreset.Type.PARACHUTE, cr.getPresetType() );
51 public void testLoadFromPresetIsSane() {
52 Parachute cr = new Parachute();
54 cr.loadPreset(preset);
56 assertEquals( 20.0, cr.getDiameter(), 0.0 );
57 assertEquals( 8, cr.getLineCount(), 0.0 );
58 assertEquals( 12.0, cr.getLineLength(), 0.0 );
60 assertSame( preset.get( ComponentPreset.MATERIAL), cr.getMaterial() );
61 assertSame( preset.get( ComponentPreset.LINE_MATERIAL), cr.getLineMaterial() );
65 public void changeDiameterClearsPreset() {
66 Parachute cr = new Parachute();
68 cr.loadPreset(preset);
72 assertNull( cr.getPresetComponent() );
76 public void changeAreaClearsPreset() {
77 Parachute cr = new Parachute();
79 cr.loadPreset(preset);
83 assertNull( cr.getPresetComponent() );
87 public void changeLineCountClearsPreset() {
88 Parachute cr = new Parachute();
90 cr.loadPreset(preset);
94 assertNull( cr.getPresetComponent() );
98 public void changeLineLengthLeavesPreset() {
99 Parachute cr = new Parachute();
101 cr.loadPreset(preset);
103 cr.setLineLength(24);
105 assertSame( preset, cr.getPresetComponent() );
109 public void changeMaterialClearsPreset() {
110 Parachute cr = new Parachute();
112 cr.loadPreset(preset);
114 cr.setMaterial( Material.newUserMaterial(Material.Type.SURFACE,"new", 1.0));
116 assertNull( cr.getPresetComponent() );
120 public void changeLineMaterialLeavesPreset() {
121 Parachute cr = new Parachute();
123 cr.loadPreset(preset);
125 cr.setLineMaterial( Material.newUserMaterial(Material.Type.LINE,"new", 1.0));
127 assertSame( preset, cr.getPresetComponent() );