public void ReadyForNextGroupShouldCreateGroupToAdd() { IGridState readyFoNextGroupState = new ReadyForNextGroupState(setting, gridMock, groupFactoryMock, Substitute.For <OnDeleteEndEventHandler>()); gridMock.AddGroup(Arg.Any <IGroup>()).Returns(true); readyFoNextGroupState.OnUpdate(); groupFactoryMock.Received().Create(setting); gridMock.Received().SetState(GridStates.OnControlGroup); }
public void ShouldBeGameOverWhenCannotAddGroup() { gridMock.AddGroup(group).Returns(false); gridMock.CurrenteStateName.Returns(GridStates.ReadyForNextGroup); gridEventManager.OnUpdate(); gridMock.Received().GameOver(); gridMock.CurrenteStateName.Returns(GridStates.GameOver); gridEventManager.OnUpdate(); Assert.IsTrue(gridEventManager.GameIsOver); }
public void OnUpdate() { if (_onDeleteEndEvent != null) { _onDeleteEndEvent(_grid); } if (_grid.CurrenteStateName == GridStates.GameOver) { return; } IGroup group = _groupFactory.Create(_setting); _grid.ResetChains(); if (_grid.AddGroup(group)) { _grid.SetState(GridStates.OnControlGroup); } else { _grid.GameOver(); } }
public bool AddGroupToTheGrid(IBlockPattern blockPattern, IGroupPattern groupPattern) { IGroup group = _groupFactory.Create(_setting, blockPattern, groupPattern); return(_grid.AddGroup(group)); }