create changelog entry
[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.*;
4
5 import java.io.IOException;
6 import java.io.InputStream;
7 import java.util.Arrays;
8 import java.util.List;
9
10 import net.sf.openrocket.motor.Motor;
11 import net.sf.openrocket.motor.ThrustCurveMotor;
12
13 import org.junit.Test;
14
15 public class TestMotorLoader {
16         
17         private static final String DIGEST1 = "e523030bc96d5e63313b5723aaea267d";
18         private static final String DIGEST2 = "6a41f0f10b7283793eb0e6b389753729";
19         
20         
21         @Test
22         public void testGeneralMotorLoader() throws IOException {
23                 MotorLoader loader = new GeneralMotorLoader();
24                 
25                 test(loader, "test1.eng", DIGEST1);
26                 test(loader, "test2.rse", DIGEST2);
27                 test(loader, "test.zip", DIGEST2, DIGEST1);
28                 
29         }
30         
31         @Test
32         public void testRASPMotorLoader() throws IOException {
33                 test(new RASPMotorLoader(), "test1.eng", DIGEST1);
34         }
35         
36         @Test
37         public void testRocksimMotorLoader() throws IOException {
38                 test(new RockSimMotorLoader(), "test2.rse", DIGEST2);
39         }
40         
41         @Test
42         public void testZipMotorLoader() throws IOException {
43                 test(new ZipFileMotorLoader(), "test.zip", DIGEST2, DIGEST1);
44         }
45         
46         
47         private void test(MotorLoader loader, String file, String... digests) throws IOException {
48                 List<Motor> motors;
49                 
50                 InputStream is = this.getClass().getResourceAsStream(file);
51                 assertNotNull("File " + file + " not found", is);
52                 motors = loader.load(is, file);
53                 is.close();
54                 assertEquals(digests.length, motors.size());
55                 
56                 String[] d = new String[digests.length];
57                 for (int i = 0; i < motors.size(); i++) {
58                         d[i] = ((ThrustCurveMotor) motors.get(i)).getDigest();
59                 }
60                 
61                 Arrays.sort(digests);
62                 Arrays.sort(d);
63                 assertTrue("d = " + Arrays.toString(d) + " digests = " + Arrays.toString(digests), Arrays.equals(d, digests));
64         }
65         
66 }