Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / core / test / net / sf / openrocket / preset / ParachutePresetTests.java
diff --git a/core/test/net/sf/openrocket/preset/ParachutePresetTests.java b/core/test/net/sf/openrocket/preset/ParachutePresetTests.java
new file mode 100644 (file)
index 0000000..e6b3110
--- /dev/null
@@ -0,0 +1,138 @@
+package net.sf.openrocket.preset;
+
+import net.sf.openrocket.motor.Manufacturer;
+
+import org.junit.Test;
+
+/**
+ * Test construction of PARACHUTE type ComponentPresets based on TypedPropertyMap through the
+ * ComponentPresetFactory.create() method.
+ * 
+ * Ensure required properties are populated
+ * 
+ * Ensure any computed values are correctly computed.
+ * 
+ */
+public class ParachutePresetTests {
+
+       @Test
+       public void testManufacturerRequired() {
+               try {
+                       TypedPropertyMap presetspec = new TypedPropertyMap();
+                       presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.PARACHUTE);
+                       ComponentPresetFactory.create(presetspec);
+               } catch ( InvalidComponentPresetException ex ) {
+                       PresetAssertHelper.assertInvalidPresetException( ex,
+                                       new TypedKey<?>[] {
+                                       ComponentPreset.MANUFACTURER, 
+                                       ComponentPreset.PARTNO, 
+                                       ComponentPreset.DIAMETER,
+                                       ComponentPreset.LINE_COUNT,
+                                       ComponentPreset.LINE_LENGTH
+                       },
+                       new String[] {
+                                       "No Manufacturer specified",
+                                       "No PartNo specified",
+                                       "No Diameter specified",
+                                       "No LineCount specified",
+                                       "No LineLength specified"
+                       }
+                                       );
+               }
+       }
+
+       @Test
+       public void testPartNoRequired() {
+               try {
+                       TypedPropertyMap presetspec = new TypedPropertyMap();
+                       presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.PARACHUTE);
+                       presetspec.put( ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
+                       ComponentPresetFactory.create(presetspec);
+               } catch ( InvalidComponentPresetException ex ) {
+                       PresetAssertHelper.assertInvalidPresetException( ex,
+                                       new TypedKey<?>[] {
+                                       ComponentPreset.PARTNO, 
+                                       ComponentPreset.DIAMETER,
+                                       ComponentPreset.LINE_COUNT,
+                                       ComponentPreset.LINE_LENGTH
+                       },
+                       new String[] {
+                                       "No PartNo specified",
+                                       "No Diameter specified",
+                                       "No LineCount specified",
+                                       "No LineLength specified"
+                       }
+                                       );
+               }
+       }
+
+       @Test
+       public void testDiameterRequired() {
+               try {
+                       TypedPropertyMap presetspec = new TypedPropertyMap();
+                       presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.PARACHUTE);
+                       presetspec.put( ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
+                       presetspec.put( ComponentPreset.PARTNO, "partno");
+                       ComponentPresetFactory.create(presetspec);
+               } catch ( InvalidComponentPresetException ex ) {
+                       PresetAssertHelper.assertInvalidPresetException( ex,
+                                       new TypedKey<?>[] {
+                                       ComponentPreset.DIAMETER,
+                                       ComponentPreset.LINE_COUNT,
+                                       ComponentPreset.LINE_LENGTH
+                       },
+                       new String[] {
+                                       "No Diameter specified",
+                                       "No LineCount specified",
+                                       "No LineLength specified"
+                       }
+                                       );
+               }
+       }
+
+       @Test
+       public void testLineCountRequired() {
+               try {
+                       TypedPropertyMap presetspec = new TypedPropertyMap();
+                       presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.PARACHUTE);
+                       presetspec.put( ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
+                       presetspec.put( ComponentPreset.PARTNO, "partno");
+                       presetspec.put( ComponentPreset.DIAMETER, 2.0);
+                       ComponentPresetFactory.create(presetspec);
+               } catch ( InvalidComponentPresetException ex ) {
+                       PresetAssertHelper.assertInvalidPresetException( ex,
+                                       new TypedKey<?>[] {
+                                       ComponentPreset.LINE_COUNT,
+                                       ComponentPreset.LINE_LENGTH
+                       },
+                       new String[] {
+                                       "No LineCount specified",
+                                       "No LineLength specified"
+                       }
+                                       );
+               }
+       }
+
+       @Test
+       public void testLineLengthRequired() {
+               try {
+                       TypedPropertyMap presetspec = new TypedPropertyMap();
+                       presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.PARACHUTE);
+                       presetspec.put( ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
+                       presetspec.put( ComponentPreset.PARTNO, "partno");
+                       presetspec.put( ComponentPreset.DIAMETER, 2.0);
+                       presetspec.put( ComponentPreset.LINE_COUNT, 6);
+                       ComponentPresetFactory.create(presetspec);
+               } catch ( InvalidComponentPresetException ex ) {
+                       PresetAssertHelper.assertInvalidPresetException( ex,
+                                       new TypedKey<?>[] {
+                                       ComponentPreset.LINE_LENGTH
+                       },
+                       new String[] {
+                                       "No LineLength specified"
+                       }
+                                       );
+               }
+       }
+
+}