cserver/tests/dependencies.cpp

36 lines
1 KiB
C++
Raw Normal View History

2024-06-27 02:14:54 +00:00
#include <gtest/gtest.h>
#include <cserver/engine/components.hpp>
#include <nameof.hpp>
2024-06-27 02:14:54 +00:00
struct SomeComponent {
static constexpr utempl::ConstexprString kName = "some";
constexpr SomeComponent(auto&) {};
2024-06-27 02:14:54 +00:00
};
struct SomeOtherComponent {
SomeComponent& component;
static constexpr utempl::ConstexprString kName = "other";
constexpr SomeOtherComponent(auto& context) : component(context.template FindComponent<"some">()) {
2024-06-27 02:14:54 +00:00
};
};
TEST(Dependencies, Get) {
constexpr auto dependencies = cserver::ServiceContextBuilder{}
.Append<SomeOtherComponent>()
2024-06-27 02:18:40 +00:00
.Append<SomeComponent>()
.AppendConfigParam<"threads", 8>()
2024-06-27 02:14:54 +00:00
.Sort()
.GetDependencyGraph();
using Need = const cserver::DependencyGraph<
cserver::DependencyGraphElement<
2024-06-27 06:31:00 +00:00
"some",
{}>,
2024-06-27 02:14:54 +00:00
cserver::DependencyGraphElement<
2024-06-27 06:31:00 +00:00
"other",
{utempl::ConstexprString{"some"}}>>;
EXPECT_EQ(NAMEOF_TYPE(decltype(dependencies)),
NAMEOF_TYPE(Need));
2024-06-27 02:14:54 +00:00
};