001    package test; 
002    
003    import physics3d.Angle;
004    import physics3d.Shape;
005    import physics3d.Vect3;
006    import components.GameSettings;
007    import components.GameSpace;
008    import components.SquareBumper;
009    
010    import junit.framework.TestCase;
011    
012    public class TestSquareBumper extends TestCase {
013            GameSpace g1;
014            GameSpace g2;
015            
016            Vect3 p1;
017            Vect3 p2;
018            
019            Vect3 o1;
020            Vect3 o2;
021            
022            Angle a1;
023            Angle a2;
024            
025            SquareBumper b1;
026            SquareBumper b2;
027            SquareBumper b3;
028            SquareBumper b4;
029            
030            public TestSquareBumper(String name) {
031                    super(name);
032                    
033                    g1 = new GameSpace(new GameSettings());
034                    g2 = new GameSpace(new GameSettings());
035                    
036                    p1 = new Vect3(1, 2, 3);
037                    p2 = new Vect3(-5, 10, -12);
038                    
039                    o1 = Vect3.X_HAT;
040                    o2 = Vect3.Z_HAT;
041                    
042                    a1 = Angle.DEG_270;
043                    a2 = Angle.DEG_90;
044                    
045                    b1 = new SquareBumper(p1, o1, a1, "b1", g1);
046                    b2 = new SquareBumper(p2, o2, a2, "b2", g2);
047                    b3 = new SquareBumper(p1, o1, a1, "b1", g1);
048                    b4 = new SquareBumper(p1, o1, a1, "b1", g2);
049            }
050            
051            protected void setUp() {}
052            
053            //test creation
054            public void testCreation() {
055                    checkCreation(p1, o1, a1, "bumper", g1);
056            }
057            
058            public void testCreation2() {
059                    checkCreation(p2, o2, a2, "", g2);
060            }
061            
062            protected void checkCreation(Vect3 position, Vect3 orientVect, Angle a, String name, GameSpace g) {
063                    SquareBumper b = null;
064                    try {
065                            b = new SquareBumper(position, orientVect, a, name, g);
066                    } catch (Exception e) {
067                            fail("could not create SquareBumper with legal values");
068                    }
069            }
070            
071            //test getPosition
072            public void testPosition() {
073                    checkGetPosition(b1, p1);
074            }
075            
076            public void testPosition2() {
077                    checkGetPosition(b2, p2);
078            }
079            
080            protected void checkGetPosition(SquareBumper b, Vect3 p) {
081                    assertEquals("position of SquareBumper should have been " + p.toString() +
082                                    ", not " + b.getTLF().toString(), b.getTLF(), p);
083            }
084    
085            //test getVelocity (make sure it's zero!)
086            public void testVelocity() {
087                    checkGetVelocity(b1);
088            }
089            
090            public void testVelocity2() {
091                    checkGetVelocity(b2);
092            }
093            
094    
095            protected void checkGetVelocity(SquareBumper b) {
096                    assertEquals("velocity of SquareBumper should have been 0", b.getVelocity(), Vect3.ZERO);
097            }
098    
099            
100            //test getOrientVector
101            public void testOrientVect() {
102                    checkOrientVector(b1, o1);
103            }
104            
105            public void testOrientVect2() {
106                    checkOrientVector(b2, o2);
107            }
108            
109            protected void checkOrientVector(SquareBumper b, Vect3 ov) {
110                    assertEquals("Orientation vector of SquareBumper should have been " + ov.toString() +
111                                    ", not " + b.getOrientVector().toString(), b.getOrientVector(), ov);
112            }
113            
114            //test getOrientAngle
115            public void testOrientAngle() {
116                    checkOrientAngle(b1, a1);
117            }
118            
119            public void testOrientAngle2() {
120                    checkOrientAngle(b2, a2);
121            }
122            
123            protected void checkOrientAngle(SquareBumper b, Angle a) {
124                    assertEquals("Orientation angle of SquareBumper should have been " + a.toString() +
125                                    ", not " + b.getOrientAngle().toString(), b.getOrientAngle(), a);
126            }
127            
128            //test getName
129            public void testName() {
130                    checkName(b1, "b1");
131            }
132            
133            protected void checkName(SquareBumper b, String name) {
134                    assertEquals("name should have been " + name + ", not " + b.getName(), b.getName(), name);
135            }
136            
137            //test getShape
138            public void testShape() {
139                    checkShape(b1);
140            }
141            
142            public void testShape2() {
143                    checkShape(b2);
144            }
145            
146            protected void checkShape(SquareBumper b) {
147                    assertEquals(b.getShape(), Shape.getSqBumperShape());
148            }
149            
150            //test equals
151            public void testEquals() {
152                    checkEquals(b1, b1);
153            }
154            
155            public void testEquals2() {
156                    checkEquals(b1, b3);
157            }
158            
159            public void testNotEquals() {
160                    checkNotEquals(b1, b2);
161            }
162            
163            public void testNotEquals2() {
164                    checkNotEquals(b1, b4);
165            }
166            
167            protected void checkEquals(SquareBumper b1, SquareBumper b2) {
168                    assertEquals(b1, b2);
169            }
170            
171            protected void checkNotEquals(SquareBumper b1, SquareBumper b2) {
172                    assertFalse(b1.equals(b2));
173            }
174    }