1 package net.sf.openrocket.preset;
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.Parachute;
7 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
9 import org.junit.Before;
10 import org.junit.Test;
13 * Test application of ComponentPresets to Parachute RocketComponents through
14 * the Parachute.loadFromPreset mechanism.
16 * Test Parachute is well defined.
18 * Test calling setters on Parachute will clear the ComponentPreset.
21 public class ParachuterComponentTests extends BaseTestCase {
23 ComponentPreset preset;
26 public void createPreset() throws Exception {
27 TypedPropertyMap presetspec = new TypedPropertyMap();
28 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.PARACHUTE);
29 presetspec.put(ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
30 presetspec.put(ComponentPreset.PARTNO, "partno");
31 presetspec.put(ComponentPreset.DIAMETER, 20.0);
32 presetspec.put(ComponentPreset.LINE_COUNT, 8);
33 presetspec.put(ComponentPreset.LINE_LENGTH, 12.0);
34 Material m = Material.newMaterial(Material.Type.SURFACE, "testMaterial", 2.0, true);
35 presetspec.put(ComponentPreset.MATERIAL, m);
36 m = Material.newMaterial(Material.Type.LINE, "testLineMaterial", 3, true);
37 presetspec.put(ComponentPreset.LINE_MATERIAL, m);
38 preset = ComponentPresetFactory.create(presetspec);
42 public void testComponentType() {
43 Parachute cr = new Parachute();
45 assertSame(ComponentPreset.Type.PARACHUTE, cr.getPresetType());
49 public void testLoadFromPresetIsSane() {
50 Parachute cr = new Parachute();
52 cr.loadPreset(preset);
54 assertEquals(20.0, cr.getDiameter(), 0.0);
55 assertEquals(8, cr.getLineCount(), 0.0);
56 assertEquals(12.0, cr.getLineLength(), 0.0);
58 assertSame(preset.get(ComponentPreset.MATERIAL), cr.getMaterial());
59 assertSame(preset.get(ComponentPreset.LINE_MATERIAL), cr.getLineMaterial());
63 public void changeDiameterClearsPreset() {
64 Parachute cr = new Parachute();
66 cr.loadPreset(preset);
70 assertNull(cr.getPresetComponent());
74 public void changeAreaClearsPreset() {
75 Parachute cr = new Parachute();
77 cr.loadPreset(preset);
81 assertNull(cr.getPresetComponent());
85 public void changeLineCountClearsPreset() {
86 Parachute cr = new Parachute();
88 cr.loadPreset(preset);
92 assertNull(cr.getPresetComponent());
96 public void changeLineLengthLeavesPreset() {
97 Parachute cr = new Parachute();
99 cr.loadPreset(preset);
101 cr.setLineLength(24);
103 assertSame(preset, cr.getPresetComponent());
107 public void changeMaterialClearsPreset() {
108 Parachute cr = new Parachute();
110 cr.loadPreset(preset);
112 cr.setMaterial(Material.newMaterial(Material.Type.SURFACE, "new", 1.0, true));
114 assertNull(cr.getPresetComponent());
118 public void changeLineMaterialLeavesPreset() {
119 Parachute cr = new Parachute();
121 cr.loadPreset(preset);
123 cr.setLineMaterial(Material.newMaterial(Material.Type.LINE, "new", 1.0, true));
125 assertSame(preset, cr.getPresetComponent());