Skip to content

Commit 702a66b

Browse files
committed
Add engine property to Target
1 parent 0485474 commit 702a66b

File tree

5 files changed

+31
-0
lines changed

5 files changed

+31
-0
lines changed

include/scratchcpp/target.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
namespace libscratchcpp
1111
{
1212

13+
class IEngine;
1314
class Variable;
1415
class List;
1516
class Block;
@@ -67,6 +68,9 @@ class LIBSCRATCHCPP_EXPORT Target
6768
int volume() const;
6869
void setVolume(int newVolume);
6970

71+
IEngine *engine() const;
72+
void setEngine(IEngine *engine);
73+
7074
private:
7175
spimpl::unique_impl_ptr<TargetPrivate> impl;
7276
};

src/scratch/target.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,3 +289,15 @@ void Target::setVolume(int newVolume)
289289
{
290290
impl->volume = newVolume;
291291
}
292+
293+
/*! Returns the engine. */
294+
IEngine *Target::engine() const
295+
{
296+
return impl->engine;
297+
}
298+
299+
/*! Sets the engine. */
300+
void Target::setEngine(IEngine *engine)
301+
{
302+
impl->engine = engine;
303+
}

src/scratch/target_p.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
namespace libscratchcpp
1212
{
1313

14+
class IEngine;
1415
class Variable;
1516
class List;
1617
class Block;
@@ -20,6 +21,7 @@ struct TargetPrivate
2021
TargetPrivate();
2122
TargetPrivate(const TargetPrivate &) = delete;
2223

24+
IEngine *engine = nullptr;
2325
std::string name;
2426
std::vector<std::shared_ptr<Variable>> variables;
2527
std::vector<std::shared_ptr<List>> lists;

test/scratch_classes/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ add_executable(
6363
target_link_libraries(
6464
target_test
6565
GTest::gtest_main
66+
GTest::gmock_main
6667
scratchcpp
68+
scratchcpp_mocks
6769
)
6870

6971
gtest_discover_tests(target_test)

test/scratch_classes/target_test.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <scratchcpp/block.h>
55
#include <scratchcpp/costume.h>
66
#include <scratchcpp/sound.h>
7+
#include <enginemock.h>
78

89
#include "../common.h"
910

@@ -194,3 +195,13 @@ TEST(TargetTest, Volume)
194195
target.setVolume(50);
195196
ASSERT_EQ(target.volume(), 50);
196197
}
198+
199+
TEST(TargetTest, Engine)
200+
{
201+
Target target;
202+
ASSERT_EQ(target.engine(), nullptr);
203+
204+
EngineMock engine;
205+
target.setEngine(&engine);
206+
ASSERT_EQ(target.engine(), &engine);
207+
}

0 commit comments

Comments
 (0)