001 package test;
002
003 import java.util.HashSet;
004 import java.util.Set;
005
006 import junit.framework.TestCase;
007 import physics3d.Vect3;
008
009 import components.Ball;
010 import components.CircleBumper;
011 import components.GameObject;
012 import components.GameSettings;
013 import components.GameSpace;
014 import components.SquareBumper;
015 import components.TriangleBumper;
016
017 public class TestGameSpace extends TestCase {
018 GameSpace g1, g2, g3;
019
020 Vect3 v1 = new Vect3(1, 1, 1);
021 Vect3 v2 = new Vect3(10, 2, 2);
022 Vect3 v3 = new Vect3(20, 3, 3);
023 Vect3 v4 = new Vect3(30, 4, 4);
024 Vect3 v5 = new Vect3(40, 5, 5);
025 Vect3 v6 = new Vect3(50, 6, 6);
026
027 Ball b1, b2, b3;
028
029 SquareBumper s1, s2;
030
031 TriangleBumper t1, t2;
032
033 CircleBumper c1, c2;
034
035 Set<GameObject> mo1;
036 Set<GameObject> mo2;
037 Set<GameObject> fo1;
038 Set<GameObject> fo2;
039 Set<GameObject> allObj2;
040
041 public TestGameSpace(String name) {
042 super(name);
043
044 //g1 has: b1, b3; s1, t1, c1
045 g1 = new GameSpace(new GameSettings());
046
047 //g2 has: b2; s2, t1, c1
048 g2 = new GameSpace(new GameSettings());
049
050 g3 = new GameSpace(new GameSettings());
051
052 b1 = new Ball(v1, "ball1", g1);
053 b2 = new Ball(v2, "ball2", g2);
054 b3 = new Ball(v3, "ball3", g1);
055
056 s1 = new SquareBumper(v3, "s1", g1);
057 s2 = new SquareBumper(v4, "s2", g2);
058
059 t1 = new TriangleBumper(v4, "t1", g1);
060 t2 = new TriangleBumper(v3, "t2", g2);
061
062 c1 = new CircleBumper(v5, "c1", g1);
063 c2 = new CircleBumper(v6, "c2", g2);
064
065 g1.add(b1);
066 g1.add(b3);
067 g1.add(s1);
068 g1.add(t1);
069 g1.add(c1);
070
071 g2.add(b2);
072 g2.add(s2);
073 g2.add(t2);
074 g2.add(c2);
075
076 mo1 = new HashSet<GameObject>();
077 mo1.add(b1);
078 mo1.add(b3);
079
080 mo2 = new HashSet<GameObject>();
081 mo2.add(b2);
082
083 fo1 = new HashSet<GameObject>();
084 fo1.add(s1);
085 fo1.add(t1);
086 fo1.add(c1);
087
088 fo2 = new HashSet<GameObject>();
089 fo2.add(s2);
090 fo2.add(t2);
091 fo2.add(c2);
092
093 Set<GameObject> allObj = new HashSet<GameObject>(fo1);
094 allObj.addAll(mo1);
095
096 allObj2 = new HashSet<GameObject>();
097 allObj2.add(b2);
098 allObj2.add(s2);
099 allObj2.add(t2);
100 allObj2.add(c2);
101
102 }
103
104 protected void setUp() {}
105
106 /////Test Legal GameSpace creation
107 protected void testCreation(GameSettings settings) {
108 GameSpace g = null;
109 try {
110 g = new GameSpace(settings);
111 } catch (Exception e) {
112 fail("couldn't create GameSpace with legal values");
113 }
114 }
115
116 /////Test getObjects()
117 public void testGetObjects1() {
118 checkGetObjects(g1, allObj2);
119 }
120
121 public void testGetObject2() {
122 checkGetObjects(g2, allObj2);
123 }
124
125 protected void checkGetObjects(GameSpace g, Set<GameObject> set) {
126 assertEquals(g.getObjects(), set);
127 }
128
129
130 //No longer valid after changes
131 // /////Test getFixedObjects()
132 // public void testGetFixed() {
133 // checkGetFixedObjects(g1, fo1);
134 // }
135 //
136 // public void testGetFixed2() {
137 // checkGetFixedObjects(g2, fo2);
138 // }
139 //
140
141
142
143 /////Test add()
144 public void testAddFixed() {
145 checkAdd(g1, new CircleBumper(v2, "circle", g1));
146 }
147
148 public void testAddMobile() {
149 checkAdd(g1, new Ball(v6, "ball", g1));
150 }
151
152 protected void checkAdd(GameSpace g, GameObject o) {
153 try {
154 g.add(o);
155 } catch (Exception e) {
156 fail("could not add legal GameObject");
157 }
158 assertTrue(g.getObjects().contains(o));
159 }
160
161
162 }