File indexing completed on 2024-05-05 04:02:27

0001 /******************************************************************************
0002 *   KBlocks, a falling blocks game by KDE                                     *
0003 *   SPDX-FileCopyrightText: 2010-2021 Julian Helfferich <julian.helfferich@mailbox.org> *
0004 *                                                                             *
0005 *   SPDX-License-Identifier: GPL-2.0-or-later
0006 ******************************************************************************/
0007 #ifndef MOCKSINGLEGAME_H
0008 #define MOCKSINGLEGAME_H
0009 
0010 #include <memory>
0011 
0012 #include "MockField.h"
0013 #include "MockPiece.h"
0014 #include "SingleGameInterface.h"
0015 
0016 class FieldInterface;
0017 class PieceInterface;
0018 
0019 class MockSingleGame : public SingleGameInterface
0020 {
0021 public:
0022     MockSingleGame()
0023         : SingleGameInterface(),
0024           numberOfPickGameActionCalls(0),
0025           updateGameReturnValue(0),
0026           mockField(new MockField()),
0027           mockPiece(new MockPiece())
0028     {}
0029     ~MockSingleGame() override = default;
0030 
0031 public:
0032     FieldInterface *getField() override { return mockField.get(); }
0033 
0034     int getPieceCount() override { return 0; }
0035     PieceInterface *getPiece(int) override { return mockPiece.get(); }
0036 
0037     bool isActive() override { return false; }
0038     bool isGameRunning() override { return false; }
0039 
0040     int forceUpdateGame() override { return 0; }
0041     int updateGame() override { return updateGameReturnValue; }
0042     int continueGame() override { return 0; }
0043 
0044     bool setCurrentPiece(int, int, int) override { return false; }
0045 
0046     bool pickGameResult(int *) override { return false; }
0047 
0048     bool pickGameAction(int *, int *) override
0049     {
0050         ++numberOfPickGameActionCalls;
0051         return false;
0052     }
0053 
0054 public:
0055     unsigned int numberOfPickGameActionCalls;
0056     int updateGameReturnValue;
0057 
0058 private:
0059     std::unique_ptr<FieldInterface> mockField;
0060     std::unique_ptr<PieceInterface> mockPiece;
0061 };
0062 
0063 #endif //SINGLE_GAME_INTERFACE