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 }