#include #include "ctx.h" #include "memory_Context.h" #include std::string s(const char *str) { return std::string(str); } std::string test_ctx_Controller_executeFunctions_set() { auto c = memory_createContext(); ctx_Controller ctrl(c); // Disable automatic invocation of executeFunctions. ctrl.isProcessingQueue = true; ctrl.set("input", s("123")); auto processInput = [](memory_Context c) -> memory_Context { if (c.recentField == "input") { c.outputHelp = "Checked"; c.recentField = "outputHelp"; return c; } c.recentField = "none"; return c; }; ctrl.registerFunction(processInput); // Apply 'input'. ctrl.executeFunctions(); // Apply 'outputHelp'. ctrl.executeFunctions(); if ( ctrl.context.input == "123" && ctrl.context.outputHelp == "Checked" ) { return "OK: ctx_Controller_executeFunctions_set"; } return "ERR: ctx_Controller_executeFunctions_set"; } std::string test_ctx_Controller_processQueue() { auto c = memory_createContext(); ctx_Controller ctrl(c); auto processInput = [](memory_Context c) -> memory_Context { if (c.recentField == "input") { c.outputHelp = "Checked"; c.recentField = "outputHelp"; return c; } c.recentField = "none"; return c; }; ctrl.registerFunction(processInput); ctrl.set("input", s("abc")); if ( ctrl.context.input == "abc" && ctrl.context.outputHelp == "Checked" ) { return "OK: ctx_Controller_processQueue"; } return "ERR: ctx_Controller_processQueue"; }