public void CheckIntercept() { var ball = Parameters.Container.Get <IBall>(); var players = Parameters.GetPlayers(ball); var first = players.Item1; var second = players.Item2; var game = Parameters.Container.Get <Game>().AddPlayer(first).AddPlayer(second); IAction action = Parameters.Container.Get <InterceptionAction>(); action.SetUp(game); var ballPlace = ZoneType.MID; Assert.True(first.Team.HasBall); Assert.AreEqual(first.Team.Ball.Place, ballPlace); var parameters = new EnemyParameters(first.Team); if (action.Execute(parameters)) { Assert.True(second.Team.HasBall); Assert.AreEqual(second.Team.Ball.Place, ballPlace); } else { Assert.True(first.Team.HasBall); Assert.AreEqual(first.Team.Ball.Place, ballPlace); } }
public void MakeShotAndVerifyResults() { Ball ball = new Ball(whereToStart: ZoneType.ATT); var players = Parameters.GetPlayers(ball); var player = players.Item1; var opponent = players.Item2; ShootAction action = Parameters.Container.Get <ShootAction>(); action.SetUp(Parameters.Container.Get <Game>().AddPlayer(player).AddPlayer(opponent)); var shootParams = new EnemyParameters(opponent.Team); Assert.True(ball.Place == ZoneType.ATT); var executionStatus = action.Execute(shootParams); if (executionStatus) { Assert.True(ball.Place == ZoneType.MID); Assert.True(player.Team.HasBall == false); } else { Assert.True(ball.IsOwner(opponent.Team)); Assert.True(ball.Place == ZoneType.DEF); } }
public void CheckPassTransition() { var ball = Parameters.Container.Get <Ball>(); var players = Parameters.GetPlayers(ball); var first = players.Item1; var second = players.Item2; IAction action = Parameters.Container.Get <PassAction>(); action.SetUp(Parameters.Container.Get <Game>().AddPlayer(first).AddPlayer(second)); Assert.True(first.Team.HasBall); Assert.AreEqual(first.Team.Ball.Place, ZoneType.MID); var parameters = new EnemyParameters(second.Team); if (action.Execute(parameters)) { Assert.AreEqual(first.Team.Ball.Place, ZoneType.ATT); } else { Assert.True(second.Team.HasBall); Assert.AreEqual(second.Team.Ball.Place, ZoneType.MID); } }