test_farm.class.inc.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. <?php
  2. /**
  3. * test_farm.class.inc.php
  4. * User defined objects, for unit testing - SQL generation oriented (complex links)
  5. *
  6. * @package iTopUnitTests
  7. * @author Romain Quetiez <romainquetiez@yahoo.fr>
  8. * @author Denis Flaven <denisflave@free.fr>
  9. * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
  10. * @link www.itop.com
  11. * @since 1.0
  12. * @version 1.1.1.1 $
  13. */
  14. ///////////////////////////////////////////////////////////////////////////////
  15. // Business implementation demo
  16. ///////////////////////////////////////////////////////////////////////////////
  17. //todo MetaModel::RegisterRelation("Potes", array("description"=>"ceux dont l'email ressemble au mien", "verb_down"=>"est pote de", "verb_up"=>"est pote de"));
  18. //todo MetaModel::RegisterZList("list1", array("description"=>"une premiere list, just for fun", "type"=>"attributes"));
  19. //todo MetaModel::RegisterZList("list2", array("description"=>"la secunda e meliora", "type"=>"attributes"));
  20. //todo MetaModel::RegisterZList("list3", array("description"=>"la variante qui tue", "type"=>"filters"));
  21. class Animal extends cmdbObject
  22. {
  23. public static function Init()
  24. {
  25. $aParams = array
  26. (
  27. "category" => "blah",
  28. "name" => "Animal",
  29. "description" => "An animal",
  30. "key_type" => "autoincrement",
  31. "key_label" => "",
  32. "name_attcode" => "",
  33. "state_attcode" => "",
  34. "reconc_keys" => array(""),
  35. "db_table" => "animals",
  36. "db_key_field" => "animalid",
  37. "db_finalclass_field" => "actualclass",
  38. );
  39. MetaModel::Init_Params($aParams);
  40. MetaModel::Init_AddAttribute(new AttributeEnum("sex", array("label"=>"sex", "description"=>"sex", "allowed_values"=>new ValueSetEnum('male, female'), "sql"=>"sex", "default_value"=>"male", "is_null_allowed"=>false, "depends_on"=>array())));
  41. MetaModel::Init_AddAttribute(new AttributeString("species", array("label"=>"species", "description"=>"species", "allowed_values"=>null, "sql"=>"species", "default_value"=>"xxx", "is_null_allowed"=>false, "depends_on"=>array())));
  42. MetaModel::Init_AddAttribute(new AttributeInteger("speed", array("label"=>"walk speed", "description"=>"maximum possible speed m.s-1", "allowed_values"=>null, "sql"=>"speed", "default_value"=>4, "is_null_allowed"=>false, "depends_on"=>array())));
  43. MetaModel::Init_AddAttribute(new AttributeExternalKey("mother", array("label"=>"mother", "description"=>"mother", "allowed_values"=>null, "sql"=>"mother", "targetclass"=>"Animal", "is_null_allowed"=>true, "depends_on"=>array())));
  44. MetaModel::Init_AddAttribute(new AttributeExternalKey("father", array("label"=>"father", "description"=>"father", "allowed_values"=>null, "sql"=>"father", "targetclass"=>"Animal", "is_null_allowed"=>true, "depends_on"=>array())));
  45. //MetaModel::Init_InheritFilters();
  46. MetaModel::Init_AddFilterFromAttribute("sex");
  47. MetaModel::Init_AddFilterFromAttribute("species");
  48. MetaModel::Init_AddFilterFromAttribute("speed");
  49. MetaModel::Init_AddFilterFromAttribute("mother");
  50. MetaModel::Init_AddFilterFromAttribute("father");
  51. }
  52. }
  53. class Mammal extends Animal
  54. {
  55. public static function Init()
  56. {
  57. $aParams = array
  58. (
  59. "category" => "blah",
  60. "name" => "Mammal",
  61. "description" => "An animal with some characteristics",
  62. "key_type" => "autoincrement",
  63. "key_label" => "",
  64. "name_attcode" => "name",
  65. "state_attcode" => "",
  66. "reconc_keys" => array(),
  67. "db_table" => "mammals",
  68. "db_key_field" => "mammalid",
  69. "db_finalclass_field" => "",
  70. );
  71. MetaModel::Init_Params($aParams);
  72. MetaModel::Init_InheritAttributes();
  73. MetaModel::Init_AddAttribute(new AttributeString("name", array("label"=>"name", "description"=>"name", "allowed_values"=>null, "sql"=>"name", "default_value"=>"xxx", "is_null_allowed"=>false, "depends_on"=>array())));
  74. MetaModel::Init_AddAttribute(new AttributeInteger("height", array("label"=>"height", "description"=>"size in centimeters", "allowed_values"=>null, "sql"=>"height", "default_value"=>1, "is_null_allowed"=>false, "depends_on"=>array())));
  75. MetaModel::Init_AddAttribute(new AttributeDate("birth", array("label"=>"birth date", "description"=>"birth date", "allowed_values"=>null, "sql"=>"birth", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
  76. MetaModel::Init_AddAttribute(new AttributeExternalKey("member", array("label"=>"member", "description"=>"leader", "allowed_values"=>null, "sql"=>"member", "targetclass"=>"Group", "is_null_allowed"=>true, "depends_on"=>array())));
  77. // ? MetaModel::Init_AddAttribute(new AttributeLinkedSet("a2a", array("label"=>"animal to animal", "description"=>"interanimal relations", "depends_on"=>array(), "linked_class"=>"Animal2animal", "ext_key_to_me"=>"animal1", "count_min"=>0, "count_max"=>10, "allowed_values"=>null)));
  78. MetaModel::Init_InheritFilters();
  79. MetaModel::Init_AddFilterFromAttribute("name");
  80. MetaModel::Init_AddFilterFromAttribute("height");
  81. MetaModel::Init_AddFilterFromAttribute("birth");
  82. MetaModel::Init_AddFilterFromAttribute("member");
  83. }
  84. }
  85. class Bird extends Animal
  86. {
  87. public static function Init()
  88. {
  89. $aParams = array
  90. (
  91. "category" => "blah",
  92. "name" => "Bird",
  93. "description" => "Un regroupement de gens",
  94. "key_type" => "autoincrement",
  95. "key_label" => "",
  96. "name_attcode" => "",
  97. "state_attcode" => "",
  98. "reconc_keys" => array(),
  99. "db_table" => "birds",
  100. "db_key_field" => "birdid",
  101. "db_finalclass_field" => "",
  102. );
  103. MetaModel::Init_Params($aParams);
  104. MetaModel::Init_InheritAttributes();
  105. MetaModel::Init_OverloadAttributeParams("species", array("allowed_values"=>array('geese', 'rooster', 'chicken', 'turckey', 'pie', 'corbeau')));
  106. MetaModel::Init_InheritFilters();
  107. }
  108. }
  109. class WalkingBird extends Bird
  110. {
  111. public static function Init()
  112. {
  113. $aParams = array
  114. (
  115. "category" => "blah",
  116. "name" => "WalkingBird",
  117. "description" => "A bird which nevers flies",
  118. "key_type" => "",
  119. "key_label" => "",
  120. "name_attcode" => "",
  121. "state_attcode" => "",
  122. "reconc_keys" => array(),
  123. "db_table" => "walkingbirds",
  124. "db_key_field" => "walkingbirdid",
  125. "db_finalclass_field" => "",
  126. );
  127. MetaModel::Init_Params($aParams);
  128. MetaModel::Init_InheritAttributes();
  129. MetaModel::Init_OverloadAttributeParams("species", array("allowed_values"=>array('geese', 'rooster', 'chicken', 'turckey')));
  130. MetaModel::Init_InheritFilters();
  131. }
  132. }
  133. class FlyingBird extends Bird
  134. {
  135. public static function Init()
  136. {
  137. $aParams = array
  138. (
  139. "category" => "blah",
  140. "name" => "FlyingBird",
  141. "description" => "A bird which nevers flies",
  142. "key_type" => "",
  143. "key_label" => "",
  144. "name_attcode" => "",
  145. "state_attcode" => "",
  146. "reconc_keys" => array(),
  147. "db_table" => "flyingbirds",
  148. "db_key_field" => "flyingbirdid",
  149. "db_finalclass_field" => "",
  150. );
  151. MetaModel::Init_Params($aParams);
  152. MetaModel::Init_InheritAttributes();
  153. MetaModel::Init_OverloadAttributeParams("species", array("allowed_values"=>array('pie', 'corbeau')));
  154. MetaModel::Init_AddAttribute(new AttributeInteger("flyingspeed", array("label"=>"flying speed", "description"=>"flying at ms.s-1", "allowed_values"=>null, "sql"=>"headcount", "default_value"=>10, "is_null_allowed"=>false, "depends_on"=>array())));
  155. MetaModel::Init_InheritFilters();
  156. MetaModel::Init_AddFilterFromAttribute("flyingspeed");
  157. }
  158. }
  159. class AnimalRelation extends cmdbObject
  160. {
  161. public static function Init()
  162. {
  163. $aParams = array
  164. (
  165. "category" => "blah",
  166. "name" => "AnimalRelation",
  167. "description" => "Link between two animals",
  168. "key_type" => "autoincrement",
  169. "key_label" => "",
  170. "name_attcode" => "",
  171. "state_attcode" => "",
  172. "reconc_keys" => array(),
  173. "db_table" => "a2a",
  174. "db_key_field" => "linkid",
  175. "db_finalclass_field" => "",
  176. );
  177. MetaModel::Init_Params($aParams);
  178. //MetaModel::Init_InheritAttributes();
  179. // What makes it being a link...
  180. MetaModel::Init_AddAttribute(new AttributeExternalKey("animal1", array("label"=>"source", "description"=>"the animal which does ...", "allowed_values"=>null, "sql"=>"a1", "targetclass"=>"Animal", "is_null_allowed"=>false, "depends_on"=>array())));
  181. MetaModel::Init_AddAttribute(new AttributeExternalKey("animal2", array("label"=>"target", "description"=>"the animal to which something is done...", "allowed_values"=>null, "sql"=>"a2", "targetclass"=>"Animal", "is_null_allowed"=>false, "depends_on"=>array())));
  182. //MetaModel::Init_InheritFilters();
  183. MetaModel::Init_AddFilterFromAttribute("animal1");
  184. MetaModel::Init_AddFilterFromAttribute("animal2");
  185. }
  186. }
  187. class EaterToEaten extends AnimalRelation
  188. {
  189. public static function Init()
  190. {
  191. $aParams = array
  192. (
  193. "category" => "blah",
  194. "name" => "EaterToEaten",
  195. "description" => "Animal 1 eats animal 2",
  196. "key_type" => "autoincrement",
  197. "key_label" => "",
  198. "name_attcode" => "",
  199. "state_attcode" => "",
  200. "reconc_keys" => array(),
  201. "db_table" => "eatertoeaten",
  202. "db_key_field" => "eatertoeatonid",
  203. "db_finalclass_field" => "",
  204. );
  205. MetaModel::Init_Params($aParams);
  206. MetaModel::Init_InheritAttributes();
  207. MetaModel::Init_AddAttribute(new AttributeEnum("DeadOrAlive", array("label"=>"DeadOrAlive", "description"=>"State in which it is ok for the eater to proceed", "allowed_values"=>new ValueSetEnum('dead, fresh, cooked'), "sql"=>"deadoralive", "default_value"=>"fresh", "is_null_allowed"=>false, "depends_on"=>array())));
  208. MetaModel::Init_InheritFilters();
  209. MetaModel::Init_AddFilterFromAttribute("DeadOrAlive");
  210. }
  211. }
  212. class Group extends cmdbObject
  213. {
  214. public static function Init()
  215. {
  216. $aParams = array
  217. (
  218. "category" => "blah",
  219. "name" => "Group",
  220. "description" => "Group of animals",
  221. "key_type" => "autoincrement",
  222. "key_label" => "",
  223. "name_attcode" => "name",
  224. "state_attcode" => "",
  225. "reconc_keys" => array(),
  226. "db_table" => "groups",
  227. "db_key_field" => "groupid",
  228. "db_finalclass_field" => "",
  229. );
  230. MetaModel::Init_Params($aParams);
  231. MetaModel::Init_InheritAttributes();
  232. MetaModel::Init_AddAttribute(new AttributeString("name", array("label"=>"name", "description"=>"name", "allowed_values"=>null, "sql"=>"name", "default_value"=>"xxx", "is_null_allowed"=>false, "depends_on"=>array())));
  233. MetaModel::Init_AddAttribute(new AttributeExternalKey("leader", array("label"=>"leader", "description"=>"leader", "allowed_values"=>null, "sql"=>"leader", "targetclass"=>"Mammal", "is_null_allowed"=>false, "depends_on"=>array())));
  234. MetaModel::Init_AddAttribute(new AttributeExternalField("leader_name", array("label"=>"Leader Name", "description"=>"Name of the leader (defined on Mammal)", "allowed_values"=>null, "extkey_attcode"=> 'leader', "target_attcode"=>"name")));
  235. MetaModel::Init_AddAttribute(new AttributeExternalField("leader_speed", array("label"=>"Leader Name", "description"=>"Speed of the leader (defined on Animal)", "allowed_values"=>null, "extkey_attcode"=> 'leader', "target_attcode"=>"speed")));
  236. MetaModel::Init_InheritFilters();
  237. MetaModel::Init_AddFilterFromAttribute("name");
  238. MetaModel::Init_AddFilterFromAttribute("leader");
  239. MetaModel::Init_AddFilterFromAttribute("leader_name");
  240. MetaModel::Init_AddFilterFromAttribute("leader_speed");
  241. }
  242. }
  243. ?>