#pragma once #include "String.h" #include "Pointer.h" #include class TestCase { public: using TestCaseFunction = std::function; TestCase(const String& name, const String& tags, TestCaseFunction func) : mTestFunction(func), mName(name), mTags(tags) { }; virtual ~TestCase() = default; const String& getName() const { return mName; } const String& getTags() const { return mTags; } virtual void run() { mTestFunction(); }; public: TestCaseFunction mTestFunction{nullptr}; private: String mName; String mTags; }; using TestCasePtr = Ptr;