SourceTest.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * Lithium: the most rad php framework
  4. *
  5. * @copyright Copyright 2013, Union of RAD (http://union-of-rad.org)
  6. * @license http://opensource.org/licenses/bsd-license.php The BSD License
  7. */
  8. namespace lithium\tests\cases\data;
  9. use lithium\data\Entity;
  10. use lithium\tests\mocks\data\MockSource;
  11. class SourceTest extends \lithium\test\Unit {
  12. public function testMethods() {
  13. $source = new MockSource(array('autoConnect' => false));
  14. $methods = $source->methods();
  15. $expected = array(
  16. 'connect', 'disconnect', 'sources', 'describe', 'create', 'read', 'update', 'delete',
  17. 'schema', 'result', 'cast', 'relationship', 'calculation', '__construct', '__destruct',
  18. '_init', 'isConnected', 'name', 'methods', 'configureClass', 'item', 'applyStrategy',
  19. 'applyFilter', 'invokeMethod', '__set_state', '_instance', '_filter', '_parents',
  20. '_stop'
  21. );
  22. $this->assertEqual(sort($expected), sort($methods));
  23. }
  24. public function testBaseMethods() {
  25. $source = new MockSource(array('autoConnect' => true));
  26. $name = '{(\'Li\':"∆")}';
  27. $this->assertEqual($name, $source->name($name));
  28. $expected = array('meta' => array('locked' => true, 'key' => 'id'));
  29. $this->assertEqual($expected, $source->configureClass('Foo'));
  30. }
  31. public function testConnection() {
  32. $source = new MockSource(array('autoConnect' => false));
  33. $this->assertFalse($source->isConnected());
  34. $this->assertTrue($source->isConnected(array('autoConnect' => true)));
  35. $this->assertTrue($source->isConnected());
  36. }
  37. public function testItem() {
  38. $source = new MockSource();
  39. $entity = $source->item('Foo', array('foo' => 'bar'));
  40. $this->assertTrue($entity instanceof Entity);
  41. $this->assertEqual('Foo', $entity->model());
  42. $this->assertEqual(array('foo' => 'bar'), $entity->data());
  43. }
  44. }
  45. ?>