PageRenderTime 59ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/unit-tests/ModelsTest.php

https://github.com/phillipmadsen/cphalcon
PHP | 765 lines | 556 code | 138 blank | 71 comment | 4 complexity | c4b52040389523929bb430194e254b63 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. <?php
  2. /*
  3. +------------------------------------------------------------------------+
  4. | Phalcon Framework |
  5. +------------------------------------------------------------------------+
  6. | Copyright (c) 2011-2012 Phalcon Team (http://www.phalconphp.com) |
  7. +------------------------------------------------------------------------+
  8. | This source file is subject to the New BSD License that is bundled |
  9. | with this package in the file docs/LICENSE.txt. |
  10. | |
  11. | If you did not receive a copy of the license and are unable to |
  12. | obtain it through the world-wide-web, please send an email |
  13. | to license@phalconphp.com so we can send you a copy immediately. |
  14. +------------------------------------------------------------------------+
  15. | Authors: Andres Gutierrez <andres@phalconphp.com> |
  16. | Eduar Carvajal <eduar@phalconphp.com> |
  17. +------------------------------------------------------------------------+
  18. */
  19. use Phalcon\Mvc\Model\Message as ModelMessage;
  20. class Issue_1534 extends \Phalcon\Mvc\Model
  21. {
  22. }
  23. class ModelsTest extends PHPUnit_Framework_TestCase
  24. {
  25. public function __construct()
  26. {
  27. spl_autoload_register(array($this, 'modelsAutoloader'));
  28. }
  29. public function __destruct()
  30. {
  31. spl_autoload_unregister(array($this, 'modelsAutoloader'));
  32. }
  33. public function tearDown()
  34. {
  35. Phalcon\Mvc\Model::setup(array(
  36. 'phqlLiterals' => true,
  37. ));
  38. }
  39. public function modelsAutoloader($className)
  40. {
  41. if (file_exists('unit-tests/models/'.$className.'.php')) {
  42. require 'unit-tests/models/'.$className.'.php';
  43. }
  44. }
  45. protected function _prepareDb($db){
  46. $db->delete("personas", "estado='X'");
  47. $db->delete("personas", "cedula LIKE 'CELL%'");
  48. }
  49. protected function _getDI($dbService)
  50. {
  51. Phalcon\DI::reset();
  52. $di = new Phalcon\DI();
  53. $di->set('modelsManager', function(){
  54. return new Phalcon\Mvc\Model\Manager();
  55. });
  56. $di->set('modelsMetadata', function(){
  57. return new Phalcon\Mvc\Model\Metadata\Memory();
  58. });
  59. $di->set('db', $dbService, true);
  60. return $di;
  61. }
  62. public function testModelsMysql()
  63. {
  64. require 'unit-tests/config.db.php';
  65. if (empty($configMysql)) {
  66. $this->markTestSkipped("Skipped");
  67. return;
  68. }
  69. $di = $this->_getDI(function(){
  70. require 'unit-tests/config.db.php';
  71. $db = new Phalcon\Db\Adapter\Pdo\Mysql($configMysql);
  72. /*
  73. $em = new \Phalcon\Events\Manager();
  74. $em->attach('db', function($event, $connection) {
  75. if ($event->getType() == 'beforeQuery') {
  76. echo $connection->getSQLStatement(), PHP_EOL;
  77. print_r($connection->getSQLVariables());
  78. }
  79. });
  80. $db->setEventsManager($em);
  81. */
  82. return $db;
  83. });
  84. $this->_executeTestsNormal($di);
  85. $this->_executeTestsRenamed($di);
  86. $this->issue1534($di);
  87. $this->issue886($di);
  88. }
  89. public function testModelsPostgresql()
  90. {
  91. require 'unit-tests/config.db.php';
  92. if (empty($configPostgresql)) {
  93. $this->markTestSkipped("Skipped");
  94. return;
  95. }
  96. $di = $this->_getDI(function(){
  97. require 'unit-tests/config.db.php';
  98. return new Phalcon\Db\Adapter\Pdo\Postgresql($configPostgresql);
  99. });
  100. $this->_executeTestsNormal($di);
  101. $this->_executeTestsRenamed($di);
  102. $this->issue886($di);
  103. }
  104. public function testModelsSqlite()
  105. {
  106. require 'unit-tests/config.db.php';
  107. if (empty($configSqlite)) {
  108. $this->markTestSkipped("Skipped");
  109. return;
  110. }
  111. $di = $this->_getDI(function(){
  112. require 'unit-tests/config.db.php';
  113. return new Phalcon\Db\Adapter\Pdo\Sqlite($configSqlite);
  114. });
  115. $this->_executeTestsNormal($di);
  116. $this->_executeTestsRenamed($di);
  117. $this->issue886($di);
  118. }
  119. protected function issue1534($di)
  120. {
  121. $db = $di->getShared('db');
  122. $this->_prepareDb($di->getShared('db'));
  123. $this->assertTrue($db->delete('issue_1534'));
  124. $product = new Issue_1534();
  125. $product->language = new \Phalcon\Db\RawValue('default(language)');
  126. $product->name = 'foo';
  127. $product->slug = 'bar';
  128. $product->brand = new \Phalcon\Db\RawValue('default');
  129. $product->sort = new \Phalcon\Db\RawValue('default');
  130. $this->assertTrue($product->save());
  131. $this->assertEquals(1, Issue_1534::count());
  132. $entry = Issue_1534::findFirst();
  133. $this->assertEquals('bb', $entry->language);
  134. $this->assertEquals('0', $entry->sort);
  135. $this->assertTrue($entry->brand === NULL);
  136. $this->assertTrue($entry->delete());
  137. $product = new Issue_1534();
  138. $product->language = 'en';
  139. $product->name = 'foo';
  140. $product->slug = 'bar';
  141. $product->brand = 'brand';
  142. $product->sort = 1;
  143. $this->assertTrue($product->save());
  144. $this->assertEquals(1, Issue_1534::count());
  145. $entry = Issue_1534::findFirst();
  146. $entry->brand = new \Phalcon\Db\RawValue('default');
  147. $entry->sort = new \Phalcon\Db\RawValue('default');
  148. $this->assertTrue($entry->save());
  149. $this->assertEquals(1, Issue_1534::count());
  150. $entry = Issue_1534::findFirst();
  151. $this->assertEquals('0', $entry->sort);
  152. $this->assertTrue($entry->brand === NULL);
  153. /* FIXME: this does not work yet
  154. $entry->language = new \Phalcon\Db\RawValue('default(language)');
  155. $entry->language = 'es';
  156. $this->assertTrue($entry->save());
  157. $this->assertEquals(1, Issue_1534::count());
  158. $entry = Issue_1534::findFirst();
  159. $this->assertEquals('es', $entry->language);
  160. $this->assertEquals('0', $entry->sort);
  161. $this->assertTrue($entry->brand === NULL);
  162. */
  163. $this->assertTrue($db->delete('issue_1534'));
  164. }
  165. protected function issue886($di)
  166. {
  167. $this->_prepareDb($di->getShared('db'));
  168. Phalcon\Mvc\Model::setup(array(
  169. 'phqlLiterals' => false,
  170. ));
  171. $people = People::findFirst();
  172. $this->assertTrue(is_object($people));
  173. $this->assertEquals(get_class($people), 'People');
  174. }
  175. protected function _executeTestsNormal($di){
  176. $this->_prepareDb($di->getShared('db'));
  177. //Count tests
  178. $this->assertEquals(People::count(), Personas::count());
  179. $params = array();
  180. $this->assertEquals(People::count($params), Personas::count($params));
  181. $params = array("estado='I'");
  182. $this->assertEquals(People::count($params), Personas::count($params));
  183. $params = "estado='I'";
  184. $this->assertEquals(People::count($params), Personas::count($params));
  185. $params = array("conditions" => "estado='I'");
  186. $this->assertEquals(People::count($params), Personas::count($params));
  187. //Find first
  188. $people = People::findFirst();
  189. $this->assertTrue(is_object($people));
  190. $this->assertEquals(get_class($people), 'People');
  191. $persona = Personas::findFirst();
  192. $this->assertEquals($people->nombres, $persona->nombres);
  193. $this->assertEquals($people->estado, $persona->estado);
  194. $people = People::findFirst("estado='I'");
  195. $this->assertTrue(is_object($people));
  196. $persona = Personas::findFirst("estado='I'");
  197. $this->assertTrue(is_object($persona));
  198. $this->assertEquals($people->nombres, $persona->nombres);
  199. $this->assertEquals($people->estado, $persona->estado);
  200. $people = People::findFirst(array("estado='I'"));
  201. $persona = Personas::findFirst(array("estado='I'"));
  202. $this->assertEquals($people->nombres, $persona->nombres);
  203. $this->assertEquals($people->estado, $persona->estado);
  204. $params = array("conditions" => "estado='I'");
  205. $people = People::findFirst($params);
  206. $persona = Personas::findFirst($params);
  207. $this->assertEquals($people->nombres, $persona->nombres);
  208. $this->assertEquals($people->estado, $persona->estado);
  209. $params = array("conditions" => "estado='A'", "order" => "nombres");
  210. $people = People::findFirst($params);
  211. $persona = Personas::findFirst($params);
  212. $this->assertEquals($people->nombres, $persona->nombres);
  213. $this->assertEquals($people->estado, $persona->estado);
  214. $params = array("estado='A'", "order" => "nombres DESC", "limit" => 30);
  215. $people = People::findFirst($params);
  216. $persona = Personas::findFirst($params);
  217. $this->assertEquals($people->nombres, $persona->nombres);
  218. $this->assertEquals($people->estado, $persona->estado);
  219. $params = array("estado=?1", "bind" => array(1 => 'A'), "order" => "nombres DESC", "limit" => 30);
  220. $people = People::findFirst($params);
  221. $persona = Personas::findFirst($params);
  222. $this->assertEquals($people->nombres, $persona->nombres);
  223. $this->assertEquals($people->estado, $persona->estado);
  224. $params = array("estado=:estado:", "bind" => array("estado" => 'A'), "order" => "nombres DESC", "limit" => 30);
  225. $people = People::findFirst($params);
  226. $persona = Personas::findFirst($params);
  227. $this->assertEquals($people->nombres, $persona->nombres);
  228. $this->assertEquals($people->estado, $persona->estado);
  229. $robot = Robots::findFirst(1);
  230. $this->assertEquals(get_class($robot), 'Robots');
  231. //Find tests
  232. $personas = Personas::find();
  233. $people = People::find();
  234. $this->assertEquals(count($personas), count($people));
  235. $personas = Personas::find("estado='I'");
  236. $people = People::find("estado='I'");
  237. $this->assertEquals(count($personas), count($people));
  238. $personas = Personas::find(array("estado='I'"));
  239. $people = People::find(array("estado='I'"));
  240. $this->assertEquals(count($personas), count($people));
  241. $personas = Personas::find(array("estado='A'", "order" => "nombres"));
  242. $people = People::find(array("estado='A'", "order" => "nombres"));
  243. $this->assertEquals(count($personas), count($people));
  244. $personas = Personas::find(array("estado='A'", "order" => "nombres", "limit" => 100));
  245. $people = People::find(array("estado='A'", "order" => "nombres", "limit" => 100));
  246. $this->assertEquals(count($personas), count($people));
  247. $params = array("estado=?1", "bind" => array(1 => "A"), "order" => "nombres", "limit" => 100);
  248. $personas = Personas::find($params);
  249. $people = People::find($params);
  250. $this->assertEquals(count($personas), count($people));
  251. $params = array("estado=:estado:", "bind" => array("estado" => "A"), "order" => "nombres", "limit" => 100);
  252. $personas = Personas::find($params);
  253. $people = People::find($params);
  254. $this->assertEquals(count($personas), count($people));
  255. $number = 0;
  256. $peoples = Personas::find(array("conditions" => "estado='A'", "order" => "nombres", "limit" => 20));
  257. foreach($peoples as $people){
  258. $number++;
  259. }
  260. $this->assertEquals($number, 20);
  261. $persona = new Personas($di);
  262. $persona->cedula = 'CELL' . mt_rand(0, 999999);
  263. $this->assertFalse($persona->save());
  264. //Messages
  265. $this->assertEquals(count($persona->getMessages()), 4);
  266. $messages = array(
  267. 0 => ModelMessage::__set_state(array(
  268. '_type' => 'PresenceOf',
  269. '_message' => 'tipo_documento_id is required',
  270. '_field' => 'tipo_documento_id',
  271. '_code' => 0,
  272. )),
  273. 1 => ModelMessage::__set_state(array(
  274. '_type' => 'PresenceOf',
  275. '_message' => 'nombres is required',
  276. '_field' => 'nombres',
  277. '_code' => 0,
  278. )),
  279. 2 => ModelMessage::__set_state(array(
  280. '_type' => 'PresenceOf',
  281. '_message' => 'cupo is required',
  282. '_field' => 'cupo',
  283. '_code' => 0,
  284. )),
  285. 3 => ModelMessage::__set_state(array(
  286. '_type' => 'PresenceOf',
  287. '_message' => 'estado is required',
  288. '_field' => 'estado',
  289. '_code' => 0,
  290. )),
  291. );
  292. $this->assertEquals($persona->getMessages(), $messages);
  293. //Save
  294. $persona = new Personas($di);
  295. $persona->cedula = 'CELL' . mt_rand(0, 999999);
  296. $persona->tipo_documento_id = 1;
  297. $persona->nombres = 'LOST';
  298. $persona->telefono = '1';
  299. $persona->cupo = 20000;
  300. $persona->estado = 'A';
  301. $this->assertTrue($persona->save());
  302. $persona = new Personas($di);
  303. $persona->cedula = 'CELL' . mt_rand(0, 999999);
  304. $persona->tipo_documento_id = 1;
  305. $persona->nombres = 'LOST LOST';
  306. $persona->telefono = '2';
  307. $persona->cupo = 0;
  308. $persona->estado = 'X';
  309. $this->assertTrue($persona->save());
  310. //Check correct save
  311. $persona = Personas::findFirst(array("estado='X'"));
  312. $this->assertNotEquals($persona, false);
  313. $this->assertEquals($persona->nombres, 'LOST LOST');
  314. $this->assertEquals($persona->estado, 'X');
  315. //Update
  316. $persona->cupo = 150000;
  317. $persona->telefono = '123';
  318. $this->assertTrue($persona->update());
  319. //Checking correct update
  320. $persona = Personas::findFirst(array("estado='X'"));
  321. $this->assertNotEquals($persona, false);
  322. $this->assertEquals($persona->cupo, 150000);
  323. $this->assertEquals($persona->telefono, '123');
  324. //Update
  325. $this->assertTrue($persona->update(array(
  326. 'nombres' => 'LOST UPDATE',
  327. 'telefono' => '2121'
  328. )));
  329. //Checking correct update
  330. $persona = Personas::findFirst(array("estado='X'"));
  331. $this->assertNotEquals($persona, false);
  332. $this->assertEquals($persona->nombres, 'LOST UPDATE');
  333. $this->assertEquals($persona->telefono, '2121');
  334. //Create
  335. $persona = new Personas($di);
  336. $persona->cedula = 'CELL' . mt_rand(0, 999999);
  337. $persona->tipo_documento_id = 1;
  338. $persona->nombres = 'LOST CREATE';
  339. $persona->telefono = '1';
  340. $persona->cupo = 21000;
  341. $persona->estado = 'A';
  342. $this->assertTrue($persona->create());
  343. $persona = new Personas($di);
  344. $this->assertTrue($persona->create(array(
  345. 'cedula' => 'CELL' . mt_rand(0, 999999),
  346. 'tipo_documento_id' => 1,
  347. 'nombres' => 'LOST CREATE',
  348. 'telefono' => '1',
  349. 'cupo' => 21000,
  350. 'estado' => 'A'
  351. )));
  352. //Grouping
  353. $difEstados = People::count(array("distinct" => "estado"));
  354. $this->assertEquals($difEstados, 3);
  355. $group = People::count(array("group" => "estado"));
  356. $this->assertEquals(count($group), 3);
  357. //Deleting
  358. $before = People::count();
  359. $this->assertTrue($persona->delete());
  360. $this->assertEquals($before - 1, People::count());
  361. //Assign
  362. $persona = new Personas();
  363. $persona->assign(array(
  364. 'tipo_documento_id' => 1,
  365. 'nombres' => 'LOST CREATE',
  366. 'telefono' => '1',
  367. 'cupo' => 21000,
  368. 'estado' => 'A',
  369. 'notField' => 'SOME VALUE'
  370. ));
  371. $expected = array(
  372. 'cedula' => NULL,
  373. 'tipo_documento_id' => 1,
  374. 'nombres' => 'LOST CREATE',
  375. 'telefono' => '1',
  376. 'direccion' => NULL,
  377. 'email' => NULL,
  378. 'fecha_nacimiento' => NULL,
  379. 'ciudad_id' => NULL,
  380. 'creado_at' => NULL,
  381. 'cupo' => 21000,
  382. 'estado' => 'A',
  383. );
  384. $this->assertEquals($persona->toArray(), $expected);
  385. // Issue 1701
  386. $expected = array(
  387. 'nombres' => 'LOST CREATE',
  388. 'cupo' => 21000,
  389. 'estado' => 'A',
  390. );
  391. $this->assertEquals($persona->toArray(array('nombres', 'cupo', 'estado')), $expected);
  392. //Refresh
  393. $persona = Personas::findFirst();
  394. $personaData = $persona->toArray();
  395. $persona->assign(array(
  396. 'tipo_documento_id' => 1,
  397. 'nombres' => 'LOST CREATE',
  398. 'telefono' => '1',
  399. 'cupo' => 21000,
  400. 'estado' => 'A',
  401. 'notField' => 'SOME VALUE'
  402. ));
  403. $persona->refresh();
  404. $this->assertEquals($personaData, $persona->toArray());
  405. // Issue 1314
  406. $parts = new Parts2();
  407. $parts->save();
  408. // Issue 1506
  409. $persona = Personas::findFirst(array('columns' => 'nombres, telefono, estado', "nombres = 'LOST CREATE'"));
  410. $expected = array(
  411. 'nombres' => 'LOST CREATE',
  412. 'telefono' => '1',
  413. 'estado' => 'A'
  414. );
  415. $this->assertEquals($expected, $persona->toArray());
  416. }
  417. protected function _executeTestsRenamed($di)
  418. {
  419. $this->_prepareDb($di->getShared('db'));
  420. $params = array();
  421. $this->assertTrue(Personers::count($params) > 0);
  422. $params = array("status = 'I'");
  423. $this->assertTrue(Personers::count($params) > 0);
  424. $params = "status='I'";
  425. $this->assertTrue(Personers::count($params) > 0);
  426. $params = array("conditions" => "status='I'");
  427. $this->assertTrue(Personers::count($params) > 0);
  428. //Find first
  429. $personer = Personers::findFirst();
  430. $this->assertTrue(is_object($personer));
  431. $this->assertEquals(get_class($personer), 'Personers');
  432. $this->assertTrue(isset($personer->navnes));
  433. $this->assertTrue(isset($personer->status));
  434. $personer = Personers::findFirst("status = 'I'");
  435. $this->assertTrue(is_object($personer));
  436. $this->assertTrue(isset($personer->navnes));
  437. $this->assertTrue(isset($personer->status));
  438. $personer = Personers::findFirst(array("status='I'"));
  439. $this->assertTrue(is_object($personer));
  440. $this->assertTrue(isset($personer->navnes));
  441. $this->assertTrue(isset($personer->status));
  442. $params = array("conditions" => "status='I'");
  443. $personer = Personers::findFirst($params);
  444. $this->assertTrue(is_object($personer));
  445. $this->assertTrue(isset($personer->navnes));
  446. $this->assertTrue(isset($personer->status));
  447. $params = array("conditions" => "status='A'", "order" => "navnes");
  448. $personer = Personers::findFirst($params);
  449. $this->assertTrue(is_object($personer));
  450. $this->assertTrue(isset($personer->navnes));
  451. $this->assertTrue(isset($personer->status));
  452. $params = array("status='A'", "order" => "navnes DESC", "limit" => 30);
  453. $personer = Personers::findFirst($params);
  454. $this->assertTrue(is_object($personer));
  455. $this->assertTrue(isset($personer->navnes));
  456. $this->assertTrue(isset($personer->status));
  457. $params = array("status=?1", "bind" => array(1 => 'A'), "order" => "navnes DESC", "limit" => 30);
  458. $personer = Personers::findFirst($params);
  459. $this->assertTrue(is_object($personer));
  460. $this->assertTrue(isset($personer->navnes));
  461. $this->assertTrue(isset($personer->status));
  462. $params = array("status=:status:", "bind" => array("status" => 'A'), "order" => "navnes DESC", "limit" => 30);
  463. $personer = Personers::findFirst($params);
  464. $this->assertTrue(is_object($personer));
  465. $this->assertTrue(isset($personer->navnes));
  466. $this->assertTrue(isset($personer->status));
  467. $robotter = Robotters::findFirst(1);
  468. $this->assertEquals(get_class($robotter), 'Robotters');
  469. //Find tests
  470. $personers = Personers::find();
  471. $this->assertTrue(count($personers) > 0);
  472. $personers = Personers::find("status='I'");
  473. $this->assertTrue(count($personers) > 0);
  474. $personers = Personers::find(array("status='I'"));
  475. $this->assertTrue(count($personers) > 0);
  476. $personers = Personers::find(array("status='I'", "order" => "navnes"));
  477. $this->assertTrue(count($personers) > 0);
  478. $params = array("status='I'", "order" => "navnes", "limit" => 100);
  479. $personers = Personers::find($params);
  480. $this->assertTrue(count($personers) > 0);
  481. $params = array("status=?1", "bind" => array(1 => "A"), "order" => "navnes", "limit" => 100);
  482. $personers = Personers::find($params);
  483. $this->assertTrue(count($personers) > 0);
  484. $params = array("status=:status:", "bind" => array('status' => "A"), "order" => "navnes", "limit" => 100);
  485. $personers = Personers::find($params);
  486. $this->assertTrue(count($personers) > 0);
  487. //Traverse the cursor
  488. $number = 0;
  489. $personers = Personers::find(array("conditions" => "status='A'", "order" => "navnes", "limit" => 20));
  490. foreach($personers as $personer){
  491. $number++;
  492. }
  493. $this->assertEquals($number, 20);
  494. $personer = new Personers($di);
  495. $personer->borgerId = 'CELL'.mt_rand(0, 999999);
  496. $this->assertFalse($personer->save());
  497. //Messages
  498. $this->assertEquals(count($personer->getMessages()), 4);
  499. $messages = array(
  500. 0 => ModelMessage::__set_state(array(
  501. '_type' => 'PresenceOf',
  502. '_message' => 'slagBorgerId is required',
  503. '_field' => 'slagBorgerId',
  504. '_code' => 0,
  505. )),
  506. 1 => ModelMessage::__set_state(array(
  507. '_type' => 'PresenceOf',
  508. '_message' => 'navnes is required',
  509. '_field' => 'navnes',
  510. '_code' => 0,
  511. )),
  512. 2 => ModelMessage::__set_state(array(
  513. '_type' => 'PresenceOf',
  514. '_message' => 'kredit is required',
  515. '_field' => 'kredit',
  516. '_code' => 0,
  517. )),
  518. 3 => ModelMessage::__set_state(array(
  519. '_type' => 'PresenceOf',
  520. '_message' => 'status is required',
  521. '_field' => 'status',
  522. '_code' => 0,
  523. )),
  524. );
  525. $this->assertEquals($personer->getMessages(), $messages);
  526. //Save
  527. $personer = new Personers($di);
  528. $personer->borgerId = 'CELL'.mt_rand(0, 999999);
  529. $personer->slagBorgerId = 1;
  530. $personer->navnes = 'LOST';
  531. $personer->telefon = '1';
  532. $personer->kredit = 20000;
  533. $personer->status = 'A';
  534. $this->assertTrue($personer->save());
  535. $personer = new Personers($di);
  536. $personer->borgerId = 'CELL'.mt_rand(0, 999999);
  537. $personer->slagBorgerId = 1;
  538. $personer->navnes = 'LOST LOST';
  539. $personer->telefon = '2';
  540. $personer->kredit = 0;
  541. $personer->status = 'X';
  542. $this->assertTrue($personer->save());
  543. //Check correct save
  544. $personer = Personers::findFirst(array("status='X'"));
  545. $this->assertNotEquals($personer, false);
  546. $this->assertEquals($personer->navnes, 'LOST LOST');
  547. $this->assertEquals($personer->status, 'X');
  548. //Update
  549. $personer->kredit = 150000;
  550. $personer->telefon = '123';
  551. $this->assertTrue($personer->update());
  552. //Checking correct update
  553. $personer = Personers::findFirst(array("status='X'"));
  554. $this->assertNotEquals($personer, false);
  555. $this->assertEquals($personer->kredit, 150000);
  556. $this->assertEquals($personer->telefon, '123');
  557. //Update
  558. $this->assertTrue($personer->update(array(
  559. 'navnes' => 'LOST UPDATE',
  560. 'telefon' => '2121'
  561. )));
  562. //Checking correct update
  563. $personer = Personers::findFirst(array("status='X'"));
  564. $this->assertNotEquals($personer, false);
  565. $this->assertEquals($personer->navnes, 'LOST UPDATE');
  566. $this->assertEquals($personer->telefon, '2121');
  567. //Create
  568. $personer = new Personers($di);
  569. $personer->borgerId = 'CELL'.mt_rand(0, 999999);
  570. $personer->slagBorgerId = 1;
  571. $personer->navnes = 'LOST CREATE';
  572. $personer->telefon = '2';
  573. $personer->kredit = 21000;
  574. $personer->status = 'A';
  575. $this->assertTrue($personer->save());
  576. $personer = new Personers($di);
  577. $this->assertTrue($personer->create(array(
  578. 'borgerId' => 'CELL'.mt_rand(0, 999999),
  579. 'slagBorgerId' => 1,
  580. 'navnes' => 'LOST CREATE',
  581. 'telefon' => '1',
  582. 'kredit' => 21000,
  583. 'status' => 'A'
  584. )));
  585. //Deleting
  586. $before = Personers::count();
  587. $this->assertTrue($personer->delete());
  588. $this->assertEquals($before - 1, Personers::count());
  589. //Assign
  590. $personer = new Personers();
  591. $personer->assign(array(
  592. 'slagBorgerId' => 1,
  593. 'navnes' => 'LOST CREATE',
  594. 'telefon' => '1',
  595. 'kredit' => 21000,
  596. 'status' => 'A'
  597. ));
  598. $expected = array(
  599. 'borgerId' => NULL,
  600. 'slagBorgerId' => 1,
  601. 'navnes' => 'LOST CREATE',
  602. 'telefon' => '1',
  603. 'adresse' => NULL,
  604. 'elektroniskPost' => NULL,
  605. 'fodtDato' => NULL,
  606. 'fodebyId' => NULL,
  607. 'skabtPa' => NULL,
  608. 'kredit' => 21000,
  609. 'status' => 'A',
  610. );
  611. $this->assertEquals($personer->toArray(), $expected);
  612. //Refresh
  613. $personer = Personers::findFirst();
  614. $personerData = $personer->toArray();
  615. $personer->assign(array(
  616. 'slagBorgerId' => 1,
  617. 'navnes' => 'LOST CREATE',
  618. 'telefon' => '1',
  619. 'kredit' => 21000,
  620. 'status' => 'A'
  621. ));
  622. $personer->refresh();
  623. $this->assertEquals($personerData, $personer->toArray());
  624. }
  625. }