package net.sf.openrocket.file.motor; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.List; import net.sf.openrocket.motor.Motor; import net.sf.openrocket.motor.ThrustCurveMotor; import org.junit.Test; public class TestMotorLoader { private static final String DIGEST1 = "e523030bc96d5e63313b5723aaea267d"; private static final String DIGEST2 = "6a41f0f10b7283793eb0e6b389753729"; private static final String DIGEST3 = "e3164a735f9a50500f2725f0a33d246b"; @Test public void testGeneralMotorLoader() throws IOException { MotorLoader loader = new GeneralMotorLoader(); test(loader, "test1.eng", DIGEST1); test(loader, "test2.rse", DIGEST2); test(loader, "test.zip", DIGEST2, DIGEST1); test(loader, "test3.rse", DIGEST3); } @Test public void testRASPMotorLoader() throws IOException { test(new RASPMotorLoader(), "test1.eng", DIGEST1); } @Test public void testRocksimMotorLoader() throws IOException { test(new RockSimMotorLoader(), "test2.rse", DIGEST2); } @Test public void testRocksimMotorLoader3() throws IOException { test(new RockSimMotorLoader(), "test3.rse", DIGEST3); } @Test public void testZipMotorLoader() throws IOException { test(new ZipFileMotorLoader(), "test.zip", DIGEST2, DIGEST1); } private void test(MotorLoader loader, String file, String... digests) throws IOException { List<Motor> motors; InputStream is = this.getClass().getResourceAsStream(file); assertNotNull("File " + file + " not found", is); motors = loader.load(is, file); is.close(); assertEquals(digests.length, motors.size()); String[] d = new String[digests.length]; for (int i = 0; i < motors.size(); i++) { d[i] = ((ThrustCurveMotor) motors.get(i)).getDigest(); } Arrays.sort(digests); Arrays.sort(d); assertTrue("d = " + Arrays.toString(d) + " digests = " + Arrays.toString(digests), Arrays.equals(d, digests)); } }