test_farm.class.inc.php 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  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. "key_type" => "autoincrement",
  29. "key_label" => "",
  30. "name_attcode" => "",
  31. "state_attcode" => "",
  32. "reconc_keys" => array(""),
  33. "db_table" => "animals",
  34. "db_key_field" => "animalid",
  35. "db_finalclass_field" => "actualclass",
  36. );
  37. MetaModel::Init_Params($aParams);
  38. MetaModel::Init_AddAttribute(new AttributeEnum("sex", array("allowed_values"=>new ValueSetEnum('male, female'), "sql"=>"sex", "default_value"=>"male", "is_null_allowed"=>false, "depends_on"=>array())));
  39. MetaModel::Init_AddAttribute(new AttributeString("species", array("allowed_values"=>null, "sql"=>"species", "default_value"=>"xxx", "is_null_allowed"=>false, "depends_on"=>array())));
  40. MetaModel::Init_AddAttribute(new AttributeInteger("speed", array("allowed_values"=>null, "sql"=>"speed", "default_value"=>4, "is_null_allowed"=>false, "depends_on"=>array())));
  41. MetaModel::Init_AddAttribute(new AttributeExternalKey("mother", array("allowed_values"=>null, "sql"=>"mother", "targetclass"=>"Animal", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  42. MetaModel::Init_AddAttribute(new AttributeExternalKey("father", array("allowed_values"=>null, "sql"=>"father", "targetclass"=>"Animal", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  43. //MetaModel::Init_InheritFilters();
  44. MetaModel::Init_AddFilterFromAttribute("sex");
  45. MetaModel::Init_AddFilterFromAttribute("species");
  46. MetaModel::Init_AddFilterFromAttribute("speed");
  47. MetaModel::Init_AddFilterFromAttribute("mother");
  48. MetaModel::Init_AddFilterFromAttribute("father");
  49. }
  50. }
  51. class Mammal extends Animal
  52. {
  53. public static function Init()
  54. {
  55. $aParams = array
  56. (
  57. "category" => "blah",
  58. "key_type" => "autoincrement",
  59. "key_label" => "",
  60. "name_attcode" => "name",
  61. "state_attcode" => "",
  62. "reconc_keys" => array(),
  63. "db_table" => "mammals",
  64. "db_key_field" => "mammalid",
  65. "db_finalclass_field" => "",
  66. );
  67. MetaModel::Init_Params($aParams);
  68. MetaModel::Init_InheritAttributes();
  69. MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>"xxx", "is_null_allowed"=>false, "depends_on"=>array())));
  70. MetaModel::Init_AddAttribute(new AttributeInteger("height", array("allowed_values"=>null, "sql"=>"height", "default_value"=>1, "is_null_allowed"=>false, "depends_on"=>array())));
  71. MetaModel::Init_AddAttribute(new AttributeDate("birth", array("allowed_values"=>null, "sql"=>"birth", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
  72. MetaModel::Init_AddAttribute(new AttributeExternalKey("member", array("allowed_values"=>null, "sql"=>"member", "targetclass"=>"Group", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  73. // ? MetaModel::Init_AddAttribute(new AttributeLinkedSet("a2a", array("depends_on"=>array(), "linked_class"=>"Animal2animal", "ext_key_to_me"=>"animal1", "count_min"=>0, "count_max"=>10, "allowed_values"=>null)));
  74. MetaModel::Init_InheritFilters();
  75. MetaModel::Init_AddFilterFromAttribute("name");
  76. MetaModel::Init_AddFilterFromAttribute("height");
  77. MetaModel::Init_AddFilterFromAttribute("birth");
  78. MetaModel::Init_AddFilterFromAttribute("member");
  79. }
  80. }
  81. class Bird extends Animal
  82. {
  83. public static function Init()
  84. {
  85. $aParams = array
  86. (
  87. "category" => "blah",
  88. "key_type" => "autoincrement",
  89. "key_label" => "",
  90. "name_attcode" => "",
  91. "state_attcode" => "",
  92. "reconc_keys" => array(),
  93. "db_table" => "birds",
  94. "db_key_field" => "birdid",
  95. "db_finalclass_field" => "",
  96. );
  97. MetaModel::Init_Params($aParams);
  98. MetaModel::Init_InheritAttributes();
  99. MetaModel::Init_OverloadAttributeParams("species", array("allowed_values"=>array('geese', 'rooster', 'chicken', 'turckey', 'pie', 'corbeau')));
  100. MetaModel::Init_InheritFilters();
  101. }
  102. }
  103. class WalkingBird extends Bird
  104. {
  105. public static function Init()
  106. {
  107. $aParams = array
  108. (
  109. "category" => "blah",
  110. "key_type" => "",
  111. "key_label" => "",
  112. "name_attcode" => "",
  113. "state_attcode" => "",
  114. "reconc_keys" => array(),
  115. "db_table" => "walkingbirds",
  116. "db_key_field" => "walkingbirdid",
  117. "db_finalclass_field" => "",
  118. );
  119. MetaModel::Init_Params($aParams);
  120. MetaModel::Init_InheritAttributes();
  121. MetaModel::Init_OverloadAttributeParams("species", array("allowed_values"=>array('geese', 'rooster', 'chicken', 'turckey')));
  122. MetaModel::Init_InheritFilters();
  123. }
  124. }
  125. class FlyingBird extends Bird
  126. {
  127. public static function Init()
  128. {
  129. $aParams = array
  130. (
  131. "category" => "blah",
  132. "key_type" => "",
  133. "key_label" => "",
  134. "name_attcode" => "",
  135. "state_attcode" => "",
  136. "reconc_keys" => array(),
  137. "db_table" => "flyingbirds",
  138. "db_key_field" => "flyingbirdid",
  139. "db_finalclass_field" => "",
  140. );
  141. MetaModel::Init_Params($aParams);
  142. MetaModel::Init_InheritAttributes();
  143. MetaModel::Init_OverloadAttributeParams("species", array("allowed_values"=>array('pie', 'corbeau')));
  144. MetaModel::Init_AddAttribute(new AttributeInteger("flyingspeed", array("allowed_values"=>null, "sql"=>"headcount", "default_value"=>10, "is_null_allowed"=>false, "depends_on"=>array())));
  145. MetaModel::Init_InheritFilters();
  146. MetaModel::Init_AddFilterFromAttribute("flyingspeed");
  147. }
  148. }
  149. class AnimalRelation extends cmdbObject
  150. {
  151. public static function Init()
  152. {
  153. $aParams = array
  154. (
  155. "category" => "blah",
  156. "key_type" => "autoincrement",
  157. "key_label" => "",
  158. "name_attcode" => "",
  159. "state_attcode" => "",
  160. "reconc_keys" => array(),
  161. "db_table" => "a2a",
  162. "db_key_field" => "linkid",
  163. "db_finalclass_field" => "",
  164. );
  165. MetaModel::Init_Params($aParams);
  166. //MetaModel::Init_InheritAttributes();
  167. // What makes it being a link...
  168. MetaModel::Init_AddAttribute(new AttributeExternalKey("animal1", array("allowed_values"=>null, "sql"=>"a1", "targetclass"=>"Animal", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  169. MetaModel::Init_AddAttribute(new AttributeExternalKey("animal2", array("allowed_values"=>null, "sql"=>"a2", "targetclass"=>"Animal", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  170. //MetaModel::Init_InheritFilters();
  171. MetaModel::Init_AddFilterFromAttribute("animal1");
  172. MetaModel::Init_AddFilterFromAttribute("animal2");
  173. }
  174. }
  175. class EaterToEaten extends AnimalRelation
  176. {
  177. public static function Init()
  178. {
  179. $aParams = array
  180. (
  181. "category" => "blah",
  182. "key_type" => "autoincrement",
  183. "key_label" => "",
  184. "name_attcode" => "",
  185. "state_attcode" => "",
  186. "reconc_keys" => array(),
  187. "db_table" => "eatertoeaten",
  188. "db_key_field" => "eatertoeatonid",
  189. "db_finalclass_field" => "",
  190. );
  191. MetaModel::Init_Params($aParams);
  192. MetaModel::Init_InheritAttributes();
  193. MetaModel::Init_AddAttribute(new AttributeEnum("DeadOrAlive", array("allowed_values"=>new ValueSetEnum('dead, fresh, cooked'), "sql"=>"deadoralive", "default_value"=>"fresh", "is_null_allowed"=>false, "depends_on"=>array())));
  194. MetaModel::Init_InheritFilters();
  195. MetaModel::Init_AddFilterFromAttribute("DeadOrAlive");
  196. }
  197. }
  198. class Group extends cmdbObject
  199. {
  200. public static function Init()
  201. {
  202. $aParams = array
  203. (
  204. "category" => "blah",
  205. "key_type" => "autoincrement",
  206. "key_label" => "",
  207. "name_attcode" => "name",
  208. "state_attcode" => "",
  209. "reconc_keys" => array(),
  210. "db_table" => "groups",
  211. "db_key_field" => "groupid",
  212. "db_finalclass_field" => "",
  213. );
  214. MetaModel::Init_Params($aParams);
  215. MetaModel::Init_InheritAttributes();
  216. MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>"xxx", "is_null_allowed"=>false, "depends_on"=>array())));
  217. MetaModel::Init_AddAttribute(new AttributeExternalKey("leader", array("allowed_values"=>null, "sql"=>"leader", "targetclass"=>"Mammal", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
  218. MetaModel::Init_AddAttribute(new AttributeExternalField("leader_name", array("allowed_values"=>null, "extkey_attcode"=> 'leader', "target_attcode"=>"name")));
  219. MetaModel::Init_AddAttribute(new AttributeExternalField("leader_speed", array("allowed_values"=>null, "extkey_attcode"=> 'leader', "target_attcode"=>"speed")));
  220. MetaModel::Init_InheritFilters();
  221. MetaModel::Init_AddFilterFromAttribute("name");
  222. MetaModel::Init_AddFilterFromAttribute("leader");
  223. MetaModel::Init_AddFilterFromAttribute("leader_name");
  224. MetaModel::Init_AddFilterFromAttribute("leader_speed");
  225. }
  226. }
  227. ?>