#include
#include
#include "StubNodeDataModel.hpp"
using QtNodes::DataModelRegistry;
using QtNodes::NodeData;
using QtNodes::NodeDataModel;
using QtNodes::NodeDataType;
using QtNodes::PortIndex;
using QtNodes::PortType;
namespace
{
class StubModelStaticName : public StubNodeDataModel
{
public:
static QString
Name()
{
return "Name";
}
};
}
TEST_CASE("DataModelRegistry::registerModel", "[interface]")
{
DataModelRegistry registry;
SECTION("stub model")
{
registry.registerModel();
auto model = registry.create("name");
CHECK(model->name() == "name");
}
SECTION("stub model with static name")
{
registry.registerModel();
auto model = registry.create("Name");
CHECK(model->name() == "name");
}
SECTION("From model creator function")
{
SECTION("non-static name()")
{
registry.registerModel([] {
return std::make_unique();
});
auto model = registry.create("name");
REQUIRE(model != nullptr);
CHECK(model->name() == "name");
CHECK(dynamic_cast(model.get()));
}
SECTION("static Name()")
{
registry.registerModel([] {
return std::make_unique();
});
auto model = registry.create("Name");
REQUIRE(model != nullptr);
CHECK(model->name() == "name");
CHECK(dynamic_cast(model.get()));
}
}
}