Skip to content

Commit 91cbf68

Browse files
committed
Use public API in load project test
1 parent a5d7790 commit 91cbf68

File tree

1 file changed

+25
-33
lines changed

1 file changed

+25
-33
lines changed

test/load_project/load_project_test.cpp

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include <scratchcpp/project.h>
2+
#include <scratchcpp/iengine.h>
23
#include <scratchcpp/input.h>
34
#include <scratchcpp/inputvalue.h>
45
#include <scratchcpp/field.h>
@@ -10,31 +11,27 @@
1011
#include <scratchcpp/sound.h>
1112
#include <scratchcpp/sprite.h>
1213

13-
#include "internal/scratch3reader.h"
14-
#include "engine/engine.h"
1514
#include "../common.h"
1615

1716
using namespace libscratchcpp;
1817

19-
static Scratch3Reader s3reader;
20-
static const std::vector<IProjectReader *> readers = { &s3reader };
2118
static const std::vector<ScratchVersion> scratchVersions = { ScratchVersion::Scratch3 };
2219
static const std::vector<std::string> fileExtensions = { ".sb3" };
2320

2421
TEST(LoadProjectTest, EmptyProject)
2522
{
2623
int i = 0;
27-
for (auto reader : readers) {
28-
reader->clear();
29-
reader->setFileName("empty_project" + fileExtensions[i]);
24+
for (auto version : scratchVersions) {
25+
Project p("empty_project" + fileExtensions[i], version);
3026

31-
ASSERT_TRUE(reader->load());
32-
ASSERT_TRUE(reader->isValid());
33-
ASSERT_EQ(reader->targets().size(), 1);
34-
ASSERT_EQ(reader->extensions().size(), 0);
35-
ASSERT_EQ(reader->broadcasts().size(), 0);
27+
ASSERT_TRUE(p.load());
3628

37-
std::shared_ptr<Stage> stage = std::reinterpret_pointer_cast<Stage>(reader->targets().at(0));
29+
auto engine = p.engine();
30+
ASSERT_EQ(engine->targets().size(), 1);
31+
ASSERT_EQ(engine->extensions().size(), 0);
32+
ASSERT_EQ(engine->broadcasts().size(), 0);
33+
34+
std::shared_ptr<Stage> stage = std::reinterpret_pointer_cast<Stage>(engine->targets().at(0));
3835
ASSERT_TRUE(stage->isStage());
3936
ASSERT_EQ(stage->name(), "Stage");
4037
ASSERT_EQ(stage->variables().size(), 0);
@@ -64,24 +61,19 @@ TEST(LoadProjectTest, EmptyProject)
6461
TEST(LoadProjectTest, LoadTestProject)
6562
{
6663
int i = 0;
67-
for (auto reader : readers) {
68-
reader->clear();
69-
reader->setFileName("load_test" + fileExtensions[i]);
70-
71-
ASSERT_TRUE(reader->load());
72-
ASSERT_TRUE(reader->isValid());
73-
ASSERT_EQ(reader->targets().size(), 3);
74-
ASSERT_EQ(reader->extensions().size(), 0);
75-
ASSERT_EQ(reader->broadcasts().size(), 1);
76-
Engine engine;
77-
engine.setTargets(reader->targets());
78-
engine.setBroadcasts(reader->broadcasts());
79-
engine.setExtensions(reader->extensions());
80-
engine.compile();
64+
for (auto version : scratchVersions) {
65+
Project p("load_test" + fileExtensions[i], version);
66+
67+
ASSERT_TRUE(p.load());
68+
69+
auto engine = p.engine();
70+
ASSERT_EQ(engine->targets().size(), 3);
71+
ASSERT_EQ(engine->extensions().size(), 0);
72+
ASSERT_EQ(engine->broadcasts().size(), 1);
8173

8274
// Stage
83-
ASSERT_NE(engine.findTarget("Stage"), -1);
84-
Stage *stage = dynamic_cast<Stage *>(engine.targetAt(engine.findTarget("Stage")));
75+
ASSERT_NE(engine->findTarget("Stage"), -1);
76+
Stage *stage = dynamic_cast<Stage *>(engine->targetAt(engine->findTarget("Stage")));
8577
ASSERT_EQ(stage->variables().size(), 2);
8678
ASSERT_EQ(stage->lists().size(), 1);
8779

@@ -96,8 +88,8 @@ TEST(LoadProjectTest, LoadTestProject)
9688
ASSERT_EQ(GET_LIST(stage, "list1")->toString(), "3 1 4 8 7 6 7 7 2 4");
9789

9890
// Sprite1
99-
ASSERT_NE(engine.findTarget("Sprite1"), -1);
100-
Sprite *sprite1 = dynamic_cast<Sprite *>(engine.targetAt(engine.findTarget("Sprite1")));
91+
ASSERT_NE(engine->findTarget("Sprite1"), -1);
92+
Sprite *sprite1 = dynamic_cast<Sprite *>(engine->targetAt(engine->findTarget("Sprite1")));
10193
ASSERT_FALSE(sprite1->isStage());
10294
ASSERT_EQ(sprite1->name(), "Sprite1");
10395
ASSERT_EQ(sprite1->variables().size(), 1);
@@ -221,8 +213,8 @@ TEST(LoadProjectTest, LoadTestProject)
221213
ASSERT_EQ(argBlock->opcode(), "argument_reporter_string_number");
222214

223215
// Balloon1
224-
ASSERT_NE(engine.findTarget("Balloon1"), -1);
225-
Sprite *sprite2 = dynamic_cast<Sprite *>(engine.targetAt(engine.findTarget("Balloon1")));
216+
ASSERT_NE(engine->findTarget("Balloon1"), -1);
217+
Sprite *sprite2 = dynamic_cast<Sprite *>(engine->targetAt(engine->findTarget("Balloon1")));
226218
ASSERT_FALSE(sprite2->isStage());
227219
ASSERT_EQ(sprite2->name(), "Balloon1");
228220
ASSERT_EQ(sprite2->variables().size(), 1);

0 commit comments

Comments
 (0)