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