1 package net.sf.openrocket.preset;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertNull;
6 import static org.junit.Assert.assertSame;
7 import net.sf.openrocket.material.Material;
8 import net.sf.openrocket.motor.Manufacturer;
9 import net.sf.openrocket.rocketcomponent.EngineBlock;
10 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
12 import org.junit.Before;
13 import org.junit.Test;
16 * Test application of ComponentPresets to EngineBlock RocketComponents through
17 * the EngineBlock.loadFromPreset mechanism.
19 * Test EngineBlock is well defined.
21 * Test calling setters on EngineBlock will clear the ComponentPreset.
24 public class EngineBlockComponentTests extends BaseTestCase {
26 ComponentPreset preset;
29 public void createPreset() throws Exception {
30 TypedPropertyMap presetspec = new TypedPropertyMap();
31 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.ENGINE_BLOCK);
32 presetspec.put( ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
33 presetspec.put( ComponentPreset.PARTNO, "partno");
34 presetspec.put( ComponentPreset.LENGTH, 2.0);
35 presetspec.put( ComponentPreset.OUTER_DIAMETER, 2.0);
36 presetspec.put( ComponentPreset.INNER_DIAMETER, 1.0);
37 presetspec.put( ComponentPreset.MASS, 100.0);
38 preset = ComponentPresetFactory.create(presetspec);
42 public void testComponentType() {
43 EngineBlock eb = new EngineBlock();
45 assertSame( ComponentPreset.Type.ENGINE_BLOCK, eb.getPresetType() );
49 public void testLoadFromPresetIsSane() {
50 EngineBlock eb = new EngineBlock();
52 eb.loadPreset(preset);
54 assertEquals( 2.0, eb.getLength(), 0.0 );
55 assertEquals( 1.0, eb.getOuterRadius(), 0.0 );
56 assertEquals( 0.5, eb.getInnerRadius(), 0.0 );
58 assertFalse( eb.isOuterRadiusAutomatic() );
60 assertSame( preset.get( ComponentPreset.MATERIAL), eb.getMaterial() );
61 assertEquals( 100.0, eb.getMass(), 0.05);
65 public void changeLengthLeavesPreset() {
66 EngineBlock eb = new EngineBlock();
68 eb.loadPreset(preset);
72 assertSame( preset, eb.getPresetComponent() );
76 public void changeODClearsPreset() {
77 EngineBlock eb = new EngineBlock();
79 eb.loadPreset(preset);
81 eb.setOuterRadius(2.0);
83 assertNull( eb.getPresetComponent() );
87 public void changeIDClearsPreset() {
88 EngineBlock eb = new EngineBlock();
90 eb.loadPreset(preset);
92 eb.setInnerRadius(0.75);
94 assertNull( eb.getPresetComponent() );
98 public void changeThicknessClearsPreset() {
99 EngineBlock eb = new EngineBlock();
101 eb.loadPreset(preset);
103 eb.setThickness(0.1);
105 assertNull( eb.getPresetComponent() );
109 public void changeMaterialClearsPreset() {
110 EngineBlock eb = new EngineBlock();
112 eb.loadPreset(preset);
114 eb.setMaterial( new Material.Bulk("new", 1.0, true));
116 assertNull( eb.getPresetComponent() );