Change handling of Motor Digests. The computed digest value is now stored as a membe...
[debian/openrocket] / core / test / net / sf / openrocket / file / motor / TestMotorLoader.java
1 package net.sf.openrocket.file.motor;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNotNull;
5 import static org.junit.Assert.assertTrue;
6
7 import java.io.IOException;
8 import java.io.InputStream;
9 import java.util.Arrays;
10 import java.util.List;
11
12 import net.sf.openrocket.motor.Motor;
13 import net.sf.openrocket.motor.ThrustCurveMotor;
14
15 import org.junit.Test;
16
17 public class TestMotorLoader {
18         
19         @Test
20         public void testGeneralMotorLoader() throws IOException {
21                 MotorLoader loader = new GeneralMotorLoader();
22                 
23                 test(loader, "test1.eng", "c056cf25df6751f7bb8a94bc4f64750f");
24                 test(loader, "test2.rse", "b2fe203ee319ae28b9ccdad26a8f21de");
25                 test(loader, "test.zip", "b2fe203ee319ae28b9ccdad26a8f21de", "c056cf25df6751f7bb8a94bc4f64750f");
26                 
27         }
28         
29         @Test
30         public void testRASPMotorLoader() throws IOException {
31                 test(new RASPMotorLoader(), "test1.eng", "c056cf25df6751f7bb8a94bc4f64750f");
32         }
33         
34         @Test
35         public void testRocksimMotorLoader() throws IOException {
36                 test(new RockSimMotorLoader(), "test2.rse", "b2fe203ee319ae28b9ccdad26a8f21de");
37         }
38         
39         @Test
40         public void testZipMotorLoader() throws IOException {
41                 test(new ZipFileMotorLoader(), "test.zip", "b2fe203ee319ae28b9ccdad26a8f21de", "c056cf25df6751f7bb8a94bc4f64750f");
42         }
43         
44         
45         private void test(MotorLoader loader, String file, String... digests) throws IOException {
46                 List<Motor> motors;
47                 
48                 InputStream is = this.getClass().getResourceAsStream(file);
49                 assertNotNull("File " + file + " not found", is);
50                 motors = loader.load(is, file);
51                 is.close();
52                 assertEquals(digests.length, motors.size());
53                 
54                 String[] d = new String[digests.length];
55                 for (int i = 0; i < motors.size(); i++) {
56                         d[i] = ((ThrustCurveMotor) motors.get(i)).getDigest();
57                 }
58                 
59                 Arrays.sort(digests);
60                 Arrays.sort(d);
61                 assertTrue("d = " + Arrays.toString(d) + " digests = " + Arrays.toString(digests), Arrays.equals(d, digests));
62         }
63         
64 }