[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/BehaviorTree/nodeeditor/master/test/src/TestDataModelRegistry.cpp [Back]  [Original]

#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()));
    }
  }
}

Web Proxy Viewer  |  New URL  |  Original Page