void testValues() { Account account; Login l; account->setId("al"); account->setAttr("password", std::string("ping")); l->setArgs1(account); // assert(l->getArgs()[0]->getLongDescription()=="Later in hierarchy tree objtype changes to 'object' when actual game objects are made."); // assert(l->getArgs()[0]->getDescription()=="Base class for accounts"); assert(l->getId()==""); assert(l->getParents().front()=="login"); assert(l->getObjtype()=="op"); // std::cout<<std::endl<<"account.long_description: " // <<l->getArgs()[0]->getLongDescription()<<std::endl; { Atlas::Message::MapType mobj; Atlas::Message::ListType parents; parents.push_back(std::string("account")); mobj["parents"] = parents; mobj["name"] = std::string("foo"); mobj["objtype"] = std::string("op"); Root obj = Atlas::Objects::Factories::instance()->createObject(mobj); assert(obj->getClassNo() == Atlas::Objects::Entity::ACCOUNT_NO); assert(obj->getId() == ""); assert(obj->isDefaultId() == true); assert(obj->getName() == "foo"); assert(obj->isDefaultName() == false); assert(obj->getParents().front() == "account"); //should this be true? modify MessageObject2ClassObject if yes assert(obj->isDefaultParents() == false); assert(obj->getObjtype() == "op"); assert(obj->isDefaultObjtype() == false); //should this be true? // assert(obj->getDescription() == "Base class for accounts"); // assert(obj->isDefaultDescription() == true); } { Atlas::Message::MapType mobj; Root obj = Atlas::Objects::objectDefinitions.find(std::string("account"))->second; assert(obj->getClassNo() == Atlas::Objects::Entity::ACCOUNT_NO); assert(obj->getId() == "account"); assert(obj->isDefaultId() == false); assert(obj->getName() == ""); assert(obj->isDefaultName() == true); assert(obj->getParents().front() == "admin_entity"); assert(obj->isDefaultParents() == false); assert(obj->getObjtype() == "class"); assert(obj->isDefaultObjtype() == false); // assert(obj->getDescription() == "Base class for accounts"); // assert(obj->isDefaultDescription() == false); } { Atlas::Message::MapType mobj; Root obj = Atlas::Objects::Factories::instance()->createObject(mobj); assert(obj->getClassNo() == Atlas::Objects::Entity::ANONYMOUS_NO); assert(obj->getId() == ""); assert(obj->getName() == ""); assert(obj->getParents().size() == 0); assert(obj->getObjtype() == "obj"); // assert(obj->getDescription() == ""); } { Atlas::Message::MapType mobj; mobj["id"] = std::string("bar"); mobj["name"] = std::string("foo"); Atlas::Message::ListType parents; parents.push_back(std::string("account")); mobj["parents"] = parents; Root obj = Atlas::Objects::Factories::instance()->createObject(mobj); assert(obj->getClassNo() == Atlas::Objects::Entity::ANONYMOUS_NO); assert(obj->getId() == "bar"); assert(obj->getName() == "foo"); assert(obj->getParents().front() == "account"); assert(obj->getObjtype() == "obj"); // assert(obj->getDescription() == ""); } { Atlas::Message::MapType maccount; maccount["id"] = std::string("bar"); maccount["name"] = std::string("foo"); Atlas::Message::ListType parents; parents.push_back(std::string("player")); maccount["parents"] = parents; maccount["objtype"] = "obj"; Atlas::Message::MapType mcreate; mcreate["from"] = std::string("bar"); Atlas::Message::ListType parents2; parents2.push_back(std::string("create")); mcreate["parents"] = parents2; Atlas::Message::ListType args; args.push_back(maccount); mcreate["args"] = args; mcreate["objtype"] = "op"; Create op = Atlas::Objects::smart_dynamic_cast<Create>(Atlas::Objects::Factories::instance()->createObject(mcreate)); assert(op->getClassNo() == Atlas::Objects::Operation::CREATE_NO); assert(op->instanceOf(Atlas::Objects::Operation::CREATE_NO)); assert(op->instanceOf(Atlas::Objects::Operation::ACTION_NO)); assert(op->instanceOf(Atlas::Objects::ROOT_NO)); assert(!op->instanceOf(Atlas::Objects::Operation::COMBINE_NO)); assert(!op->instanceOf(Atlas::Objects::Entity::ACCOUNT_NO)); assert(op->getFrom() == "bar"); assert(op->getParents().size() == 1); assert(op->getParents().front() == "create"); assert(op->getObjtype() == "op"); // assert(op->getDescription() == // "Create new things from nothing using this operator."); assert(op->getArgs().size() == 1); Account op_arg = (Account&)op->getArgs().front(); assert(op_arg->getClassNo() == Atlas::Objects::Entity::PLAYER_NO); assert(!op_arg->instanceOf(Atlas::Objects::Operation::CREATE_NO)); assert(!op_arg->instanceOf(Atlas::Objects::Operation::ACTION_NO)); assert(op_arg->instanceOf(Atlas::Objects::ROOT_NO)); assert(!op_arg->instanceOf(Atlas::Objects::Operation::COMBINE_NO)); assert(op_arg->instanceOf(Atlas::Objects::Entity::ACCOUNT_NO)); assert(op_arg->instanceOf(Atlas::Objects::Entity::PLAYER_NO)); assert(op_arg->getId() == "bar"); assert(op_arg->getParents().size() == 1); assert(op_arg->getParents().front() == "player"); assert(op_arg->getObjtype() == "obj"); // assert(op_arg->getDescription() == "Player accounts"); assert(op_arg->getName() == "foo"); #if 0 //tmp assert(op_arg->hasAttr("password")); assert(op_arg->getAttr("password").isString()); assert(op_arg->getAttr("password").asString() == ""); #endif assert(op_arg->hasAttr("name")); assert(!op_arg->hasAttr("foo")); assert(!op_arg->hasAttr("pos")); assert(!op_arg->isDefaultName()); assert(op_arg->isDefaultPos()); } }