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.EngineBlock;
7 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
9 import org.junit.Before;
10 import org.junit.Test;
13 * Test application of ComponentPresets to EngineBlock RocketComponents through
14 * the EngineBlock.loadFromPreset mechanism.
16 * Test EngineBlock is well defined.
18 * Test calling setters on EngineBlock will clear the ComponentPreset.
21 public class EngineBlockComponentTests extends BaseTestCase {
23 ComponentPreset preset;
26 public void createPreset() throws Exception {
27 TypedPropertyMap presetspec = new TypedPropertyMap();
28 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.ENGINE_BLOCK);
29 presetspec.put(ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
30 presetspec.put(ComponentPreset.PARTNO, "partno");
31 presetspec.put(ComponentPreset.LENGTH, 2.0);
32 presetspec.put(ComponentPreset.OUTER_DIAMETER, 2.0);
33 presetspec.put(ComponentPreset.INNER_DIAMETER, 1.0);
34 presetspec.put(ComponentPreset.MASS, 100.0);
35 preset = ComponentPresetFactory.create(presetspec);
39 public void testComponentType() {
40 EngineBlock eb = new EngineBlock();
42 assertSame(ComponentPreset.Type.ENGINE_BLOCK, eb.getPresetType());
46 public void testLoadFromPresetIsSane() {
47 EngineBlock eb = new EngineBlock();
49 eb.loadPreset(preset);
51 assertEquals(2.0, eb.getLength(), 0.0);
52 assertEquals(1.0, eb.getOuterRadius(), 0.0);
53 assertEquals(0.5, eb.getInnerRadius(), 0.0);
55 assertFalse(eb.isOuterRadiusAutomatic());
57 assertSame(preset.get(ComponentPreset.MATERIAL), eb.getMaterial());
58 assertEquals(100.0, eb.getMass(), 0.05);
62 public void changeLengthLeavesPreset() {
63 EngineBlock eb = new EngineBlock();
65 eb.loadPreset(preset);
69 assertSame(preset, eb.getPresetComponent());
73 public void changeODClearsPreset() {
74 EngineBlock eb = new EngineBlock();
76 eb.loadPreset(preset);
78 eb.setOuterRadius(2.0);
80 assertNull(eb.getPresetComponent());
84 public void changeIDClearsPreset() {
85 EngineBlock eb = new EngineBlock();
87 eb.loadPreset(preset);
89 eb.setInnerRadius(0.75);
91 assertNull(eb.getPresetComponent());
95 public void changeThicknessClearsPreset() {
96 EngineBlock eb = new EngineBlock();
98 eb.loadPreset(preset);
100 eb.setThickness(0.1);
102 assertNull(eb.getPresetComponent());
106 public void changeMaterialClearsPreset() {
107 EngineBlock eb = new EngineBlock();
109 eb.loadPreset(preset);
111 eb.setMaterial(Material.newMaterial(Material.Type.BULK, "new", 1.0, true));
113 assertNull(eb.getPresetComponent());