int main() { EntityBuilder::init(); { RuleHandler * rh = new EntityRuleHandler(EntityBuilder::instance()); delete rh; } // check() not a class { RuleHandler * rh = new EntityRuleHandler(EntityBuilder::instance()); Anonymous description; description->setParents(std::list<std::string>(1, "foo")); int ret = rh->check(description); assert(ret == -1); delete rh; } // check() stub says it's a task { RuleHandler * rh = new EntityRuleHandler(EntityBuilder::instance()); stub_isTask_result = true; Anonymous description; description->setObjtype("class"); description->setParents(std::list<std::string>(1, "foo")); int ret = rh->check(description); assert(ret == -1); stub_isTask_result = false; delete rh; } // check() stub says it's not a task { RuleHandler * rh = new EntityRuleHandler(EntityBuilder::instance()); Anonymous description; description->setObjtype("class"); description->setParents(std::list<std::string>(1, "foo")); int ret = rh->check(description); assert(ret == 0); delete rh; } { RuleHandler * rh = new EntityRuleHandler(EntityBuilder::instance()); Anonymous description; description->setId("class_name"); std::string dependent, reason; int ret = rh->install("class_name", "parent_name", description, dependent, reason); assert(ret == 1); assert(dependent == "parent_name"); delete rh; } // Install a rule with addChild rigged to give a correct result { RuleHandler * rh = new EntityRuleHandler(EntityBuilder::instance()); Anonymous description; description->setId("class_name"); std::string dependent, reason; stub_addChild_result = (TypeNode *) malloc(sizeof(TypeNode)); int ret = rh->install("class_name", "parent_name", description, dependent, reason); assert(ret == 1); assert(dependent == "parent_name"); free(stub_addChild_result); stub_addChild_result = 0; delete rh; } { RuleHandler * rh = new EntityRuleHandler(EntityBuilder::instance()); Anonymous description; int ret = rh->update("", description); // FIXME Currently does nothing assert(ret == -1); delete rh; } }
int main() { EntityBuilder eb; { RuleHandler * rh = new EntityRuleHandler(&eb); delete rh; } // check() not a class { RuleHandler * rh = new EntityRuleHandler(&eb); Anonymous description; description->setParent("foo"); int ret = rh->check(description); assert(ret == -1); delete rh; } // check() stub says it's not a task { RuleHandler * rh = new EntityRuleHandler(&eb); Anonymous description; description->setObjtype("class"); description->setParent("foo"); int ret = rh->check(description); assert(ret == 0); delete rh; } { RuleHandler * rh = new EntityRuleHandler(&eb); std::map<const TypeNode*, TypeNode::PropertiesUpdate> changes; Anonymous description; description->setId("class_name"); std::string dependent, reason; int ret = rh->install("class_name", "parent_name", description, dependent, reason, changes); assert(ret == 1); assert(dependent == "parent_name"); delete rh; } // Install a rule with addChild rigged to give a correct result { RuleHandler * rh = new EntityRuleHandler(&eb); std::map<const TypeNode*, TypeNode::PropertiesUpdate> changes; Anonymous description; description->setId("class_name"); std::string dependent, reason; stub_addChild_result = (TypeNode *) malloc(sizeof(TypeNode)); int ret = rh->install("class_name", "parent_name", description, dependent, reason, changes); assert(ret == 1); assert(dependent == "parent_name"); free(stub_addChild_result); stub_addChild_result = 0; delete rh; } { RuleHandler * rh = new EntityRuleHandler(&eb); std::map<const TypeNode*, TypeNode::PropertiesUpdate> changes; Anonymous description; int ret = rh->update("", description, changes); // FIXME Currently does nothing assert(ret == -1); delete rh; } }