@@ -116,3 +116,55 @@ TEST_F(PenBlocksTest, Stamp_Stage)
116116 EXPECT_CALL (m_engineMock, requestRedraw ());
117117 thread->run ();
118118}
119+
120+ TEST_F (PenBlocksTest, PenDown_Sprite)
121+ {
122+ auto sprite = std::make_shared<Sprite>();
123+ sprite->setEngine (&m_engineMock);
124+
125+ RenderedTarget renderedTarget;
126+ SpriteModel model;
127+ model.init (sprite.get ());
128+ model.setRenderedTarget (&renderedTarget);
129+ sprite->setInterface (&model);
130+
131+ ScriptBuilder builder (m_extension.get (), m_engine, sprite);
132+ builder.addBlock (" pen_penDown" );
133+
134+ auto thread = buildScript (builder, sprite.get ());
135+
136+ model.setPenDown (false );
137+
138+ // EXPECT_CALL(m_engineMock, requestRedraw());
139+ thread->run ();
140+ ASSERT_TRUE (model.penDown ());
141+
142+ thread->run ();
143+ ASSERT_TRUE (model.penDown ());
144+ }
145+
146+ TEST_F (PenBlocksTest, PenDown_Stage)
147+ {
148+ auto stage = std::make_shared<Stage>();
149+ stage->setEngine (&m_engineMock);
150+
151+ RenderedTarget renderedTarget;
152+ StageModel model;
153+ model.init (stage.get ());
154+ model.setRenderedTarget (&renderedTarget);
155+ stage->setInterface (&model);
156+
157+ ScriptBuilder builder (m_extension.get (), m_engine, stage);
158+ builder.addBlock (" pen_penDown" );
159+
160+ auto thread = buildScript (builder, stage.get ());
161+
162+ model.setPenDown (false );
163+
164+ // EXPECT_CALL(m_engineMock, requestRedraw());
165+ thread->run ();
166+ ASSERT_TRUE (model.penDown ());
167+
168+ thread->run ();
169+ ASSERT_TRUE (model.penDown ());
170+ }
0 commit comments