001 package test;
002
003 import components.Ball;
004 import components.GameSettings;
005 import components.GameSpace;
006
007 import physics3d.Shape;
008 import physics3d.Vect3;
009 import junit.framework.TestCase;
010
011 public class TestBall extends TestCase {
012 GameSpace gs;
013 GameSpace gs2;
014
015 Vect3 p1;
016 Vect3 p2;
017
018 Ball b1;
019 Ball b2;
020 Ball b3;
021 Ball b4;
022
023 public TestBall(String name) {
024 super(name);
025
026 gs = new GameSpace(new GameSettings());
027 gs2 = new GameSpace(new GameSettings());
028
029 p1 = new Vect3(1, 2, 3);
030 p2 = new Vect3(-1, -100, 2);
031
032 b1 = new Ball(p1, p1, "myBall", gs);
033 b2 = new Ball(p2, p2, "", gs);
034 b3 = new Ball(p1, p1, "myBall", gs);
035 b4 = new Ball(p1, p1, "myBall", gs2);
036 }
037
038 protected void setUp() {}
039
040 //test ball creation
041 public void testCreation() {
042 checkCreation(p1, p1, "myBall", gs);
043 }
044
045 public void testCreation2() {
046 checkCreation(p2, p2, "", gs);
047 }
048
049 protected void checkCreation(Vect3 position, Vect3 velocity, String name, GameSpace g) {
050 Ball ball = null;
051 try {
052 ball = new Ball(position, velocity, name, g);
053 } catch (Exception e) {
054 fail("could not create ball with legal values");
055 }
056 }
057
058
059 //test getPosition
060 public void testPosition() {
061 checkGetPosition(b1, p1);
062 }
063
064 public void testPosition2() {
065 checkGetPosition(b2, p2);
066 }
067
068 protected void checkGetPosition(Ball ball, Vect3 p) {
069 assertEquals("position should have been " + p.toString() + " but was " +
070 ball.getTLF().toString(), ball.getTLF(), p);
071 }
072
073 public void testVelocity() {
074 checkGetVelocity(b1, p1);
075 }
076
077 public void testVelocity2() {
078 checkGetVelocity(b2, p2);
079 }
080
081 //test getVelocity
082 protected void checkGetVelocity(Ball ball, Vect3 v) {
083 assertEquals("velocity should hve been " + v.toString() + " but was " +
084 ball.getVelocity().toString(), ball.getVelocity(), v);
085 }
086
087 //test getOrientAngle
088 //test getOrientVector
089
090 //test getName
091 public void testName() {
092 checkName(b1, "myBall");
093 }
094
095 public void testName2() {
096 checkName(b2, "");
097 }
098
099 protected void checkName(Ball ball, String name) {
100 assertEquals("name should have been " + name + " but was " + ball.getName(),
101 ball.getName(), name);
102 }
103
104 //test getGameSpace
105 protected void checkGameSpace(Ball ball, GameSpace g) {
106 assertEquals("GameSpace not right", ball.getGameSpace(), g);
107 }
108
109 //test getTargets
110
111 //test shape
112 public void testShape() {
113 checkShape(b1);
114 }
115
116 public void testShape2() {
117 checkShape(b2);
118 }
119
120 protected void checkShape(Ball ball) {
121 assertEquals(ball.getShape(), Shape.getBallShape());
122 }
123
124 //test equals
125 //checking something is equal to itself
126 public void testEquals() {
127 checkEquals(b1, b1);
128 }
129
130 public void testEquals2() {
131 checkEquals(b1, b3);
132 }
133
134 public void testNotEquals() {
135 checkNotEquals(b1, b2);
136 }
137
138 public void testNotEquals2() {
139 checkNotEquals(b1, b4);
140 }
141
142 protected void checkEquals(Ball b1, Ball b2) {
143 assertEquals(b1, b2);
144 }
145
146 protected void checkNotEquals(Ball b1, Ball b2) {
147 assertFalse(b1.equals(b2));
148 }
149
150 }