public void SetUp() { IBlockFactory mockBlockFactory = new BlockHelper.MockBlockFactory(); position = new Vector2(4, 4); field = new Field(10, 10); field.SetBlock(new BlockHelper.MockBlock(), position); subject = new GameMechanics(field, mockBlockFactory); }
public void FixBlock_BlockIsDrawnWhenFixed() { Field f = new Field(1,1); f.SetBlock(new Block(), new Vector2(0, 0)); GameMechanics mech = new GameMechanics(f, new BlockFactory()); mech.AdvanceIfPossible(); Color? color = f.ColorAt(new Vector2(0, 0)); Assert.IsNotNull(color); }
public void Test_HandleInput_WhenSpaceIsPressed() { Mock<IField> currentField = new Mock<IField>(); GameMechanics currentSubject = new GameMechanics(currentField.Object, new BlockHelper.MockBlockFactory()); List<Keys> input = new List<Keys> { Keys.Space }; currentSubject.HandleInput(input); currentField.Verify(f => f.FixBlock()); }
public void Test_AdvanceIfPossible_WhenPossible_ShouldAdvance() { Mock<IField> field = new Mock<IField>(); field.Setup(f => f.CanAdvance()).Returns(true); GameMechanics subject = new GameMechanics(field.Object, new BlockHelper.MockBlockFactory()); subject.AdvanceIfPossible(); field.Verify(f => f.AdvanceBlock()); }
public void Test_AdvanceIfPossible_WhenNotPossible_ShouldSetNewBlock() { Mock<IField> field = new Mock<IField>(); field.Setup(f => f.CanAdvance()).Returns(false); GameMechanics subject = new GameMechanics(field.Object, new BlockHelper.MockBlockFactory()); subject.AdvanceIfPossible(); field.Verify(f => f.SetBlock(It.IsAny<IBlock>(), It.IsAny<Vector2>())); }
public void Test_MoveLeftIfPossible_WhenPossible_ShouldMoveLeft() { Mock<IField> field = new Mock<IField>(); field.Setup(f => f.CanMoveLeft()).Returns(true); GameMechanics subject = new GameMechanics(field.Object, UNUSED_BLOCK_FACTORY); subject.MoveLeftIfPossible(); field.Verify(f => f.MoveBlockLeft()); }
public void Test_MoveLeftIfPossible_WhenNotPossible_ShouldNotMoveRight() { Mock<IField> field = new Mock<IField>(); field.Setup(f => f.CanMoveLeft()).Returns(false); GameMechanics subjet = new GameMechanics(field.Object, UNUSED_BLOCK_FACTORY); subjet.MoveLeftIfPossible(); field.Verify(f => f.MoveBlockLeft(), Times.Never()); }
public void Test_MoveRightIfPossible_WhenPossible_ShouldMoveRight() { Mock<IField> field = new Mock<IField>(); field.Setup(f => f.CanMoveRight()).Returns(true); GameMechanics subject = new GameMechanics(field.Object, new BlockHelper.MockBlockFactory()); subject.MoveRightIfPossible(); field.Verify(f => f.MoveBlockRight()); }
public void Test_NextBlock_ItSetsANewBlock() { Mock<IField> field = new Mock<IField>(); field.Setup(f => f.CanAdvance()).Returns(false); GameMechanics subject = new GameMechanics(field.Object, new BlockHelper.MockBlockFactory()); subject.NextBlock(); field.Verify(f => f.SetBlock(It.IsAny<IBlock>(), It.IsAny<Vector2>())); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here blockTexture = Content.Load <Texture2D>("Block"); emptyBackgroundTexture = new Texture2D(GraphicsDevice, 1, 1); emptyBackgroundTexture.SetData(new Color[] { Color.White }); numberOfRows = (GraphicsDevice.Viewport.Height - 60) / blockTexture.Height; field = new Field(12, numberOfRows); gameMechanics = new GameMechanics(field, new BlockFactory()); gameMechanics.NextBlock(); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here blockTexture = Content.Load<Texture2D>("Block"); emptyBackgroundTexture = new Texture2D(GraphicsDevice, 1, 1); emptyBackgroundTexture.SetData(new Color[] { Color.White }); numberOfRows = (GraphicsDevice.Viewport.Height - 60) / blockTexture.Height; field = new Field(12, numberOfRows, new BlockCollisionDetector()); gameMechanics = new GameMechanics(field, new BlockFactory()); }
public void Test_HandleInput_WhenUpIsPressed() { Mock<IBlock> currentBlock = new Mock<IBlock>(); Mock<IBlockFactory> factory = new Mock<IBlockFactory>(); factory.Setup(f => f.MakeBlock()).Returns(currentBlock.Object); Mock<IField> field = new Mock<IField>(); GameMechanics currentSubject = new GameMechanics(field.Object, factory.Object); currentSubject.NextBlock(); List<Keys> input = new List<Keys> { Keys.Up }; currentSubject.HandleInput(input); currentBlock.Verify(b => b.RotateRight()); }