test_farm.class.inc.php 8.6 KB

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