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.CenteringRing;
10 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
12 import org.junit.Before;
13 import org.junit.Test;
16 * Test application of ComponentPresets to CenteringRing RocketComponents through
17 * the CenteringRing.loadFromPreset mechanism.
19 * Test CenteringRing is well defined.
21 * Test calling setters on CenteringRing will clear the ComponentPreset.
24 public class CenteringRingComponentTests extends BaseTestCase {
26 ComponentPreset preset;
29 public void createPreset() throws Exception {
30 TypedPropertyMap presetspec = new TypedPropertyMap();
31 presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.CENTERING_RING);
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 CenteringRing cr = new CenteringRing();
45 assertSame( ComponentPreset.Type.CENTERING_RING, cr.getPresetType() );
49 public void testLoadFromPresetIsSane() {
50 CenteringRing cr = new CenteringRing();
52 cr.loadPreset(preset);
54 assertEquals( 2.0, cr.getLength(), 0.0 );
55 assertEquals( 1.0, cr.getOuterRadius(), 0.0 );
56 assertEquals( 0.5, cr.getInnerRadius(), 0.0 );
58 assertFalse( cr.isOuterRadiusAutomatic() );
60 assertSame( preset.get( ComponentPreset.MATERIAL), cr.getMaterial() );
61 assertEquals( 100.0, cr.getMass(), 0.05);
65 public void changeLengthLeavesPreset() {
66 CenteringRing cr = new CenteringRing();
68 cr.loadPreset(preset);
72 assertSame( preset, cr.getPresetComponent() );
76 public void changeODClearsPreset() {
77 CenteringRing cr = new CenteringRing();
79 cr.loadPreset(preset);
81 cr.setOuterRadius(2.0);
83 assertNull( cr.getPresetComponent() );
87 public void changeIDClearsPreset() {
88 CenteringRing cr = new CenteringRing();
90 cr.loadPreset(preset);
92 cr.setInnerRadius(0.75);
94 assertNull( cr.getPresetComponent() );
98 public void changeThicknessClearsPreset() {
99 CenteringRing cr = new CenteringRing();
101 cr.loadPreset(preset);
103 cr.setThickness(0.1);
105 assertNull( cr.getPresetComponent() );
109 public void changeMaterialClearsPreset() {
110 CenteringRing cr = new CenteringRing();
112 cr.loadPreset(preset);
114 cr.setMaterial( new Material.Bulk("new", 1.0, true));
116 assertNull( cr.getPresetComponent() );