99#include < scratchcpp/field.h>
1010#include < scratchcpp/list.h>
1111#include < scratchcpp/variable.h>
12+ #include < scratchcpp/broadcast.h>
1213
1314#include " ../common.h"
1415#include " testextension.h"
@@ -231,9 +232,9 @@ TEST_F(ScriptBuilderTest, AddEntityInput)
231232 m_builder->build ();
232233}
233234
234- TEST_F (ScriptBuilderTest, AddEntityField )
235+ TEST_F (ScriptBuilderTest, AddVariableEntityField )
235236{
236- auto var = std::make_shared<Variable>(" " , " " );
237+ auto var = std::make_shared<Variable>(" " , " test var " );
237238 m_target->addVariable (var);
238239
239240 m_builder->addBlock (" test_simple" );
@@ -244,13 +245,48 @@ TEST_F(ScriptBuilderTest, AddEntityField)
244245 ASSERT_TRUE (block->inputs ().empty ());
245246 ASSERT_EQ (block->fields ().size (), 1 );
246247 ASSERT_EQ (block->fieldAt (0 )->name (), " VARIABLE" );
248+ ASSERT_EQ (block->fieldAt (0 )->value ().toString (), " test var" );
247249 ASSERT_EQ (block->fieldAt (0 )->valuePtr (), var);
248250
249251 m_builder->addBlock (" test_simple" );
250252 m_builder->addEntityField (" VARIABLE" , var);
251253 m_builder->build ();
252254}
253255
256+ TEST_F (ScriptBuilderTest, AddListEntityField)
257+ {
258+ auto list = std::make_shared<List>(" " , " hello world" );
259+ m_target->addList (list);
260+
261+ m_builder->addBlock (" test_simple" );
262+ m_builder->addEntityField (" LIST" , list);
263+ auto block = m_builder->currentBlock ();
264+ ASSERT_TRUE (block);
265+ ASSERT_EQ (block->opcode (), " test_simple" );
266+ ASSERT_TRUE (block->inputs ().empty ());
267+ ASSERT_EQ (block->fields ().size (), 1 );
268+ ASSERT_EQ (block->fieldAt (0 )->name (), " LIST" );
269+ ASSERT_EQ (block->fieldAt (0 )->value ().toString (), " hello world" );
270+ ASSERT_EQ (block->fieldAt (0 )->valuePtr (), list);
271+ }
272+
273+ TEST_F (ScriptBuilderTest, AddBroadcastEntityField)
274+ {
275+ auto broadcast = std::make_shared<Broadcast>(" " , " test" );
276+ m_engine->setBroadcasts ({ broadcast });
277+
278+ m_builder->addBlock (" test_simple" );
279+ m_builder->addEntityField (" MESSAGE" , broadcast);
280+ auto block = m_builder->currentBlock ();
281+ ASSERT_TRUE (block);
282+ ASSERT_EQ (block->opcode (), " test_simple" );
283+ ASSERT_TRUE (block->inputs ().empty ());
284+ ASSERT_EQ (block->fields ().size (), 1 );
285+ ASSERT_EQ (block->fieldAt (0 )->name (), " MESSAGE" );
286+ ASSERT_EQ (block->fieldAt (0 )->value ().toString (), " test" );
287+ ASSERT_EQ (block->fieldAt (0 )->valuePtr (), broadcast);
288+ }
289+
254290TEST_F (ScriptBuilderTest, CaptureBlockReturnValue)
255291{
256292 m_builder->addBlock (" test_teststr" );
0 commit comments