public void Update_constrains_registered_objects_to_the_dimensions_of_the_universe() { var volume = new Volume(-600f, 600f, -400f, 400f, -100f, 100f); var universe = new Universe(volume); var gameObject1 = Substitute.For<IGameObject>(); var gameObject2 = Substitute.For<IGameObject>(); var gameObject3 = Substitute.For<IGameObject>(); var gameObject4 = Substitute.For<IGameObject>(); gameObject1.Position.Returns(new Vector2(volume.MinX - 10f, 0f)); gameObject2.Position.Returns(new Vector2(volume.MaxX - 10f, volume.MaxY + 10f)); gameObject3.Position.Returns(new Vector2(volume.MaxX + 10f, volume.MaxY - 10f)); gameObject4.Position.Returns(new Vector2(volume.MinX - volume.Width - 20f, volume.MinY + volume.Height / 2)); universe.Register(gameObject1); universe.Register(gameObject2); universe.Register(gameObject3); universe.Register(gameObject4); universe.Update(); var expectedPosition1 = new Vector2(volume.MaxX - 10f, 0f); gameObject1.Received().Teleport(Arg.Is(expectedPosition1)); var expectedPosition2 = new Vector2(volume.MaxX - 10f, volume.MinY + 10f); gameObject2.Received().Teleport(Arg.Is(expectedPosition2)); var expectedPosition3 = new Vector2(volume.MinX + 10f, volume.MaxY - 10f); gameObject3.Received().Teleport(Arg.Is(expectedPosition3)); var expectedPosition4 = new Vector2(volume.MaxX - 20f, volume.MinY + volume.Height / 2); gameObject4.Received().Teleport(Arg.Is(expectedPosition4)); }
public void Universe_creates_universe_and_initialises_the_volume_property() { var volume = new Volume(-600f, 600f, -400f, 400f, -100f, 100f); var universe = new Universe(volume); Assert.AreEqual(volume, universe.Volume); }
public void UnRegister_removes_registered_object() { var volume = new Volume(-600f, 600f, -400f, 400f, -100f, 100f); var universe = new Universe(volume); var gameObject1 = Substitute.For<IGameObject>(); gameObject1.Position.Returns(new Vector2(volume.MinX - 10f, 0f)); universe.Register(gameObject1); universe.Unregister(gameObject1); universe.Update(); gameObject1.DidNotReceive().Teleport(Arg.Any<Vector2>()); }