Skip to content

Commit bc983f6

Browse files
authored
Merge pull request #165 from scratchcpp/iextension_test
Add IExtension test
2 parents d2b6d9f + 260543b commit bc983f6

File tree

5 files changed

+99
-0
lines changed

5 files changed

+99
-0
lines changed

test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ add_subdirectory(blocks)
2626
add_subdirectory(scratchconfiguration)
2727
add_subdirectory(assets)
2828
add_subdirectory(script)
29+
add_subdirectory(extensions)

test/extensions/CMakeLists.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# iextension_test
2+
add_executable(
3+
iextension_test
4+
iextension_test.cpp
5+
testextension.cpp
6+
testextension.h
7+
)
8+
9+
target_link_libraries(
10+
iextension_test
11+
GTest::gtest_main
12+
GTest::gmock_main
13+
scratchcpp
14+
scratchcpp_mocks
15+
)
16+
17+
gtest_discover_tests(iextension_test)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#include <enginemock.h>
2+
3+
#include "../common.h"
4+
#include "testextension.h"
5+
6+
using namespace libscratchcpp;
7+
8+
class IExtensionTest : public testing::Test
9+
{
10+
public:
11+
void SetUp() override { m_extension = std::make_unique<TestExtension>(); };
12+
13+
std::unique_ptr<IExtension> m_extension;
14+
EngineMock m_engine;
15+
};
16+
17+
TEST_F(IExtensionTest, Name)
18+
{
19+
ASSERT_EQ(m_extension->name(), "Test");
20+
}
21+
22+
TEST_F(IExtensionTest, Description)
23+
{
24+
ASSERT_EQ(m_extension->description(), "Test extension");
25+
}
26+
27+
TEST_F(IExtensionTest, IncludeByDefault)
28+
{
29+
ASSERT_FALSE(m_extension->includeByDefault());
30+
}
31+
32+
TEST_F(IExtensionTest, RegisterSections)
33+
{
34+
std::shared_ptr<IBlockSection> section = nullptr;
35+
EXPECT_CALL(m_engine, registerSection(section)).Times(1);
36+
m_extension->registerSections(&m_engine);
37+
}

test/extensions/testextension.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include <scratchcpp/iengine.h>
2+
3+
#include "testextension.h"
4+
5+
using namespace libscratchcpp;
6+
7+
std::string TestExtension::name() const
8+
{
9+
return "Test";
10+
}
11+
12+
std::string TestExtension::description() const
13+
{
14+
return "Test extension";
15+
}
16+
17+
bool TestExtension::includeByDefault() const
18+
{
19+
return IExtension::includeByDefault();
20+
}
21+
22+
void TestExtension::registerSections(IEngine *engine)
23+
{
24+
engine->registerSection(nullptr);
25+
}

test/extensions/testextension.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#pragma once
2+
3+
#include <scratchcpp/iextension.h>
4+
5+
namespace libscratchcpp
6+
{
7+
8+
class TestExtension : public IExtension
9+
{
10+
public:
11+
std::string name() const override;
12+
std::string description() const override;
13+
14+
bool includeByDefault() const override;
15+
16+
void registerSections(IEngine *engine) override;
17+
};
18+
19+
} // namespace libscratchcpp

0 commit comments

Comments
 (0)