import junit.framework.TestCase;
import junit.framework.TestSuite;
import net.sf.openrocket.document.OpenRocketDocument;
+import net.sf.openrocket.rocketcomponent.BodyTube;
+import net.sf.openrocket.rocketcomponent.LaunchLug;
import net.sf.openrocket.rocketcomponent.Rocket;
import net.sf.openrocket.rocketcomponent.Stage;
super.tearDown();
}
+ /**
+ * Test a bug reported via automated bug report. I have been unable to reproduce this bug
+ * (hanging finset off of an inner body tube) when creating a Rocksim file using Rocksim. The bug
+ * is reproducible when manually modifying the Rocksim file, which is what is tested here.
+ */
+ public void testFinsOnInnerTube() throws Exception {
+ RocksimLoader loader = new RocksimLoader();
+ InputStream stream = this.getClass().getResourceAsStream("PodFins.rkt");
+ assertNotNull("Could not open PodFins.rkt", stream);
+ try {
+ OpenRocketDocument doc = loader.loadFromStream(new BufferedInputStream(stream));
+ assertNotNull(doc);
+ Rocket rocket = doc.getRocket();
+ assertNotNull(rocket);
+ }
+ catch (IllegalStateException ise) {
+ fail(ise.getMessage());
+ }
+ assertTrue(loader.getWarnings().size() == 2);
+ }
+
/**
*
* Method: loadFromStream(InputStream source)
RocksimLoader loader = new RocksimLoader();
//Stupid single stage rocket
InputStream stream = this.getClass().getResourceAsStream("rocksimTestRocket1.rkt");
+ assertNotNull("Could not open rocksimTestRocket1.rkt", stream);
OpenRocketDocument doc = loader.loadFromStream(new BufferedInputStream(stream));
assertNotNull(doc);
assertTrue(loader.getWarnings().isEmpty());
stream = this.getClass().getResourceAsStream("rocksimTestRocket2.rkt");
+ assertNotNull("Could not open rocksimTestRocket2.rkt", stream);
doc = loader.loadFromStream(new BufferedInputStream(stream));
assertNotNull(doc);
assertFalse(stage3.isCGOverridden());
stream = this.getClass().getResourceAsStream("rocksimTestRocket3.rkt");
+ assertNotNull("Could not open rocksimTestRocket3.rkt", stream);
doc = loader.loadFromStream(new BufferedInputStream(stream));
assertNotNull(doc);
assertTrue(stage2.isCGOverridden());
assertEquals(0.4d, stage2.getOverrideCG().x);
+ BodyTube bt = (BodyTube)stage2.getChild(0);
+ LaunchLug ll = (LaunchLug)bt.getChild(6);
+ assertEquals(1.22d, ll.getRadialDirection());
+
assertEquals(2, stage3.getChildCount());
assertEquals("Transition", stage3.getChild(0).getName());
assertEquals("Body tube", stage3.getChild(1).getName());