Exemple #1
0
    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);
    }
Exemple #2
0
    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);
    }
Exemple #3
0
    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();
        }
    }
Exemple #4
0
    public bool AddGroupToTheGrid(IBlockPattern blockPattern, IGroupPattern groupPattern)
    {
        IGroup group = _groupFactory.Create(_setting, blockPattern, groupPattern);

        return(_grid.AddGroup(group));
    }