public void RoomProperlyRendered_Test() { int threadID = AGSGame.UIThreadID; AGSGame.UIThreadID = Environment.CurrentManagedThreadId; try { _mocks.Room().Setup(m => m.ShowPlayer).Returns(false); AGSViewport viewport = new AGSViewport(new AGSDisplayListSettings(), new AGSCamera(), Mocks.GetResolver()); viewport.RoomProvider = new AGSSingleRoomProvider(_mocks.Room().Object); _mocks.GameState().Setup(m => m.Viewport).Returns(viewport); _mocks.GameState().Setup(m => m.GetSortedViewports()).Returns(new List <IViewport> { _mocks.GameState().Object.Viewport }); _areas.Clear(); _areas.Add(getArea()); var roomObj = _mocks.Object(true); var uiObj = _mocks.Object(true); roomObj.Setup(c => c.ID).Returns("roomObj"); uiObj.Setup(c => c.ID).Returns("uiObj"); _roomObjects.Clear(); _roomObjects.Add(roomObj.Object); _uiObjects.Clear(); _uiObjects.Add(uiObj.Object); var displayList = getDisplayList(); var pipeline = getPipeline(displayList); var roomRenderer = new Mock <IRenderer>(); var uiRenderer = new Mock <IRenderer>(); var roomInsturction = new Mock <IRenderInstruction>(); var uiInstruction = new Mock <IRenderInstruction>(); roomRenderer.Setup(r => r.GetNextInstruction(_mocks.GameState().Object.Viewport)).Returns(roomInsturction.Object); uiRenderer.Setup(r => r.GetNextInstruction(_mocks.GameState().Object.Viewport)).Returns(uiInstruction.Object); pipeline.Subscribe("roomObj", roomRenderer.Object); pipeline.Subscribe("uiObj", uiRenderer.Object); IRendererLoop loop = getLoop(displayList, pipeline); Assert.IsTrue(loop.Tick()); //First tick just to tell the display list about our viewport, the second tick will have the objects to render displayList.GetDisplayList(_mocks.GameState().Object.Viewport); displayList.Update(); pipeline.Update(); Assert.IsTrue(loop.Tick()); roomInsturction.Verify(r => r.Render(), Times.Once); uiInstruction.Verify(r => r.Render(), Times.Once); } finally { AGSGame.UIThreadID = threadID; } }
public int Camera_FollowX_Test(float currentViewX, float targetPosX, int roomWidth, int screenWidth, float speedX) { AGSCamera camera = new AGSCamera(speedX, 0f); _mocks.Object().Setup(o => o.WorldX).Returns(targetPosX); _mocks.Object().Setup(o => o.WorldY).Returns(0f); Func <IObject> getTarget = () => _mocks.Object().Object; camera.Target = getTarget; AGSViewport viewport = new AGSViewport(new AGSDisplayListSettings(), camera, Mocks.GetResolver()); viewport.X = currentViewX; viewport.Y = 0f; camera.Tick(viewport, new RectangleF(0f, 0f, roomWidth, 200), new Size(screenWidth, 200), false); return((int)viewport.X); }
public static Resolver GetResolver() { return(Mocks.GetResolver()); }
public void BindingCalledForExplicitTypeAlreadyAdded() { AGSEmptyEntity entity = new AGSEmptyEntity("test" + Guid.NewGuid(), Mocks.GetResolver()); AGSCropSelfComponent crop = new AGSCropSelfComponent(); entity.AddComponent <ICropSelfComponent>(crop); bool bindingCalled = false; entity.Bind <ICropSelfComponent>(c => { Assert.AreSame(crop, c); bindingCalled = true; }, _ => {}); Assert.IsTrue(bindingCalled); }