public void ShouldNotDetectCollision_PlayersAreSameSize() { // Arange var detector = new CollisionDetectingService(); var expectedWinner = A.Fake <IPlayerActor>(); var expectedWinnerPosition = new Vector2D(0, 0); var expectedWinnerState = new PlayerInfo { Nickname = nameof(expectedWinner), Position = expectedWinnerPosition, SpriteSize = 2 }; A.CallTo(() => expectedWinner.GetState()).Returns(Task.FromResult(expectedWinnerState)); A.CallTo(() => expectedWinner.GetPosition()).Returns(expectedWinnerPosition); var expectedLooser = A.Fake <IPlayerActor>(); var expectedLooserPosition = new Vector2D(0, 1); var expectedLooserState = new PlayerInfo { Nickname = nameof(expectedLooser), Position = expectedLooserPosition, SpriteSize = 2 }; A.CallTo(() => expectedLooser.GetState()).Returns(Task.FromResult(expectedLooserState)); A.CallTo(() => expectedLooser.GetPosition()).Returns(expectedLooserPosition); // Act CollisionResult result = detector.DetectCollision(expectedWinner, new[] { expectedLooser }).Result; // Assert Assert.True(result.IsEmpty()); }
public async void ShouldDetectCollision_BiggerPlayerWins() { // Arange var detector = new CollisionDetectingService(); var expectedWinner = A.Fake <IPlayerActor>(); var expectedWinnerPosition = new Vector2D(3, 3); var expectedWinnerState = new PlayerInfo { Nickname = nameof(expectedWinner), Position = expectedWinnerPosition, SpriteSize = 2 }; A.CallTo(() => expectedWinner.GetState()).Returns(Task.FromResult(expectedWinnerState)); A.CallTo(() => expectedWinner.GetPosition()).Returns(expectedWinnerPosition); var expectedLooser = A.Fake <IPlayerActor>(); var expectedLooserPosition = new Vector2D(3, 4); var expectedLooserState = new PlayerInfo { Nickname = nameof(expectedLooser), Position = expectedLooserPosition, SpriteSize = 1 }; A.CallTo(() => expectedLooser.GetState()).Returns(Task.FromResult(expectedLooserState)); A.CallTo(() => expectedLooser.GetPosition()).Returns(expectedLooserPosition); // Act CollisionResult result = await detector.DetectCollision(expectedWinner, new[] { expectedLooser }); var expectedWinnerName = expectedWinnerState.Nickname; var expectedLooserName = expectedLooserState.Nickname; var actualWinner = await result.Winner.GetState(); var actualLooser = await result.Loosers.First().GetState(); // Assert Assert.False(result.IsEmpty()); Assert.Equal(expectedWinnerName, actualWinner.Nickname); Assert.Equal(expectedLooserName, actualLooser.Nickname); }