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