test_farm.class.inc.php 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <?php
  2. // Copyright (C) 2010 Combodo SARL
  3. //
  4. // This program is free software; you can redistribute it and/or modify
  5. // it under the terms of the GNU General Public License as published by
  6. // the Free Software Foundation; version 3 of the License.
  7. //
  8. // This program is distributed in the hope that it will be useful,
  9. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. // GNU General Public License for more details.
  12. //
  13. // You should have received a copy of the GNU General Public License
  14. // along with this program; if not, write to the Free Software
  15. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  16. /**
  17. * Persistent classes for core automated tests
  18. *
  19. * @author Erwan Taloc <erwan.taloc@combodo.com>
  20. * @author Romain Quetiez <romain.quetiez@combodo.com>
  21. * @author Denis Flaven <denis.flaven@combodo.com>
  22. * @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
  23. */
  24. ///////////////////////////////////////////////////////////////////////////////
  25. // Business implementation demo
  26. ///////////////////////////////////////////////////////////////////////////////
  27. //todo MetaModel::RegisterRelation("Potes", array("description"=>"ceux dont l'email ressemble au mien", "verb_down"=>"est pote de", "verb_up"=>"est pote de"));
  28. //todo MetaModel::RegisterZList("list1", array("description"=>"une premiere list, just for fun", "type"=>"attributes"));
  29. //todo MetaModel::RegisterZList("list2", array("description"=>"la secunda e meliora", "type"=>"attributes"));
  30. //todo MetaModel::RegisterZList("list3", array("description"=>"la variante qui tue", "type"=>"filters"));
  31. class Animal extends cmdbObject
  32. {
  33. public static function Init()
  34. {
  35. $aParams = array
  36. (
  37. "category" => "blah",
  38. "key_type" => "autoincrement",
  39. "key_label" => "",
  40. "name_attcode" => "",
  41. "state_attcode" => "",
  42. "reconc_keys" => array(""),
  43. "db_table" => "animals",
  44. "db_key_field" => "animalid",
  45. "db_finalclass_field" => "actualclass",
  46. );
  47. MetaModel::Init_Params($aParams);
  48. 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())));
  49. MetaModel::Init_AddAttribute(new AttributeString("species", array("allowed_values"=>null, "sql"=>"species", "default_value"=>"xxx", "is_null_allowed"=>false, "depends_on"=>array())));
  50. MetaModel::Init_AddAttribute(new AttributeInteger("speed", array("allowed_values"=>null, "sql"=>"speed", "default_value"=>4, "is_null_allowed"=>false, "depends_on"=>array())));
  51. 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())));
  52. 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())));
  53. }
  54. }
  55. class Mammal extends Animal
  56. {
  57. public static function Init()
  58. {
  59. $aParams = array
  60. (
  61. "category" => "blah",
  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("allowed_values"=>null, "sql"=>"name", "default_value"=>"xxx", "is_null_allowed"=>false, "depends_on"=>array())));
  74. MetaModel::Init_AddAttribute(new AttributeInteger("height", array("allowed_values"=>null, "sql"=>"height", "default_value"=>1, "is_null_allowed"=>false, "depends_on"=>array())));
  75. MetaModel::Init_AddAttribute(new AttributeDate("birth", array("allowed_values"=>null, "sql"=>"birth", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
  76. 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())));
  77. }
  78. }
  79. class Bird extends Animal
  80. {
  81. public static function Init()
  82. {
  83. $aParams = array
  84. (
  85. "category" => "blah",
  86. "key_type" => "autoincrement",
  87. "key_label" => "",
  88. "name_attcode" => "",
  89. "state_attcode" => "",
  90. "reconc_keys" => array(),
  91. "db_table" => "birds",
  92. "db_key_field" => "birdid",
  93. "db_finalclass_field" => "",
  94. );
  95. MetaModel::Init_Params($aParams);
  96. MetaModel::Init_InheritAttributes();
  97. MetaModel::Init_OverloadAttributeParams("species", array("allowed_values"=>array('geese', 'rooster', 'chicken', 'turckey', 'pie', 'corbeau')));
  98. }
  99. }
  100. class WalkingBird extends Bird
  101. {
  102. public static function Init()
  103. {
  104. $aParams = array
  105. (
  106. "category" => "blah",
  107. "key_type" => "",
  108. "key_label" => "",
  109. "name_attcode" => "",
  110. "state_attcode" => "",
  111. "reconc_keys" => array(),
  112. "db_table" => "walkingbirds",
  113. "db_key_field" => "walkingbirdid",
  114. "db_finalclass_field" => "",
  115. );
  116. MetaModel::Init_Params($aParams);
  117. MetaModel::Init_InheritAttributes();
  118. MetaModel::Init_OverloadAttributeParams("species", array("allowed_values"=>array('geese', 'rooster', 'chicken', 'turckey')));
  119. }
  120. }
  121. class FlyingBird extends Bird
  122. {
  123. public static function Init()
  124. {
  125. $aParams = array
  126. (
  127. "category" => "blah",
  128. "key_type" => "",
  129. "key_label" => "",
  130. "name_attcode" => "",
  131. "state_attcode" => "",
  132. "reconc_keys" => array(),
  133. "db_table" => "flyingbirds",
  134. "db_key_field" => "flyingbirdid",
  135. "db_finalclass_field" => "",
  136. );
  137. MetaModel::Init_Params($aParams);
  138. MetaModel::Init_InheritAttributes();
  139. MetaModel::Init_OverloadAttributeParams("species", array("allowed_values"=>array('pie', 'corbeau')));
  140. MetaModel::Init_AddAttribute(new AttributeInteger("flyingspeed", array("allowed_values"=>null, "sql"=>"headcount", "default_value"=>10, "is_null_allowed"=>false, "depends_on"=>array())));
  141. }
  142. }
  143. class AnimalRelation extends cmdbObject
  144. {
  145. public static function Init()
  146. {
  147. $aParams = array
  148. (
  149. "category" => "blah",
  150. "key_type" => "autoincrement",
  151. "key_label" => "",
  152. "name_attcode" => "",
  153. "state_attcode" => "",
  154. "reconc_keys" => array(),
  155. "db_table" => "a2a",
  156. "db_key_field" => "linkid",
  157. "db_finalclass_field" => "",
  158. );
  159. MetaModel::Init_Params($aParams);
  160. //MetaModel::Init_InheritAttributes();
  161. // What makes it being a link...
  162. 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())));
  163. 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())));
  164. }
  165. }
  166. class EaterToEaten extends AnimalRelation
  167. {
  168. public static function Init()
  169. {
  170. $aParams = array
  171. (
  172. "category" => "blah",
  173. "key_type" => "autoincrement",
  174. "key_label" => "",
  175. "name_attcode" => "",
  176. "state_attcode" => "",
  177. "reconc_keys" => array(),
  178. "db_table" => "eatertoeaten",
  179. "db_key_field" => "eatertoeatonid",
  180. "db_finalclass_field" => "",
  181. );
  182. MetaModel::Init_Params($aParams);
  183. MetaModel::Init_InheritAttributes();
  184. 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())));
  185. }
  186. }
  187. class Group extends cmdbObject
  188. {
  189. public static function Init()
  190. {
  191. $aParams = array
  192. (
  193. "category" => "blah",
  194. "key_type" => "autoincrement",
  195. "key_label" => "",
  196. "name_attcode" => "name",
  197. "state_attcode" => "",
  198. "reconc_keys" => array(),
  199. "db_table" => "groups",
  200. "db_key_field" => "groupid",
  201. "db_finalclass_field" => "",
  202. );
  203. MetaModel::Init_Params($aParams);
  204. MetaModel::Init_InheritAttributes();
  205. MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>"xxx", "is_null_allowed"=>false, "depends_on"=>array())));
  206. 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())));
  207. MetaModel::Init_AddAttribute(new AttributeExternalField("leader_name", array("allowed_values"=>null, "extkey_attcode"=> 'leader', "target_attcode"=>"name")));
  208. MetaModel::Init_AddAttribute(new AttributeExternalField("leader_speed", array("allowed_values"=>null, "extkey_attcode"=> 'leader', "target_attcode"=>"speed")));
  209. }
  210. }
  211. ?>