Skip to content

Commit 476f02e

Browse files
committed
Implement touching color methods
1 parent cc2c3c7 commit 476f02e

File tree

4 files changed

+34
-2
lines changed

4 files changed

+34
-2
lines changed

src/spritemodel.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ bool SpriteModel::touchingPoint(double x, double y) const
162162

163163
bool SpriteModel::touchingColor(const libscratchcpp::Value &color) const
164164
{
165-
return false;
165+
return m_renderedTarget->touchingColor(color);
166166
}
167167

168168
libscratchcpp::Sprite *SpriteModel::sprite() const

src/stagemodel.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ bool StageModel::touchingPoint(double x, double y) const
9999

100100
bool StageModel::touchingColor(const libscratchcpp::Value &color) const
101101
{
102-
return false;
102+
return m_renderedTarget->touchingColor(color);
103103
}
104104

105105
void StageModel::loadCostume()

test/target_models/spritemodel_test.cpp

+16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include <QtTest/QSignalSpy>
22
#include <scratchcpp/costume.h>
3+
#include <scratchcpp/value.h>
34
#include <spritemodel.h>
45
#include <graphicseffect.h>
56
#include <renderedtargetmock.h>
@@ -358,6 +359,21 @@ TEST(SpriteModelTest, TouchingPoint)
358359
ASSERT_TRUE(model.touchingPoint(-20.08, 109.47));
359360
}
360361

362+
TEST(SpriteModelTest, TouchingColor)
363+
{
364+
SpriteModel model;
365+
366+
RenderedTargetMock renderedTarget;
367+
model.setRenderedTarget(&renderedTarget);
368+
369+
Value color = 123;
370+
EXPECT_CALL(renderedTarget, touchingColor(color)).WillOnce(Return(false));
371+
ASSERT_FALSE(model.touchingColor(color));
372+
373+
EXPECT_CALL(renderedTarget, touchingColor(color)).WillOnce(Return(true));
374+
ASSERT_TRUE(model.touchingColor(color));
375+
}
376+
361377
TEST(SpriteModelTest, RenderedTarget)
362378
{
363379
SpriteModel model;

test/target_models/stagemodel_test.cpp

+16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include <QtTest/QSignalSpy>
22
#include <scratchcpp/costume.h>
3+
#include <scratchcpp/value.h>
34
#include <stagemodel.h>
45
#include <graphicseffect.h>
56
#include <renderedtargetmock.h>
@@ -151,6 +152,21 @@ TEST(StageModelTest, TouchingPoint)
151152
ASSERT_TRUE(model.touchingPoint(-20.08, 109.47));
152153
}
153154

155+
TEST(StageModelTest, TouchingColor)
156+
{
157+
StageModel model;
158+
159+
RenderedTargetMock renderedTarget;
160+
model.setRenderedTarget(&renderedTarget);
161+
162+
Value color = 123;
163+
EXPECT_CALL(renderedTarget, touchingColor(color)).WillOnce(Return(false));
164+
ASSERT_FALSE(model.touchingColor(color));
165+
166+
EXPECT_CALL(renderedTarget, touchingColor(color)).WillOnce(Return(true));
167+
ASSERT_TRUE(model.touchingColor(color));
168+
}
169+
154170
TEST(StageModelTest, RenderedTarget)
155171
{
156172
StageModel model;

0 commit comments

Comments
 (0)