ImapSourceTest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. App::uses('ImapSource', 'Tools.Model/Datasource');
  3. App::uses('ConnectionManager', 'Model');
  4. App::uses('AppModel', 'Model');
  5. App::uses('MyCakeTestCase', 'Tools.TestSuite');
  6. // Add new db config
  7. //ConnectionManager::create('test_imap', array('datasource' => 'TestImapSource', 'type' => 'imap'));
  8. /**
  9. * Imap Datasource Test
  10. *
  11. */
  12. class ImapSourceTest extends MyCakeTestCase {
  13. public $Model = null;
  14. /**
  15. * Imap Source Instance
  16. *
  17. * @var ImapSource
  18. */
  19. public $Imap = null;
  20. public function setUp() {
  21. parent::setUp();
  22. $this->Model = ClassRegistry::init('TestImap');
  23. $config = [];
  24. $this->Imap = new TestImapSource($config);
  25. }
  26. /**
  27. * TestFindWithoutConfig
  28. *
  29. * @expectedException RuntimeException
  30. */
  31. public function _testFindWithoutConfig() {
  32. $result = $this->Model->find('all');
  33. //$expected = ?
  34. //$this->assertEquals($expected, $result);
  35. $this->debug($result);
  36. }
  37. /**
  38. * @return void
  39. */
  40. public function testMakeSearch() {
  41. $this->skipIf(!function_exists('imap_open'), 'No imap_open() function available. Please install extension/module.');
  42. $query = [
  43. 'answered' => 1,
  44. 'seen' => true,
  45. 'deleted' => null,
  46. 'flagged' => false, // will be reversed
  47. ];
  48. $res = $this->Imap->makeSearch($this->Model, ['conditions' => $query]);
  49. $expected = ['SEEN', 'UNFLAGGED', 'ANSWERED'];
  50. $this->assertEquals($expected, $res);
  51. }
  52. }
  53. /**
  54. * Testing Source
  55. *
  56. */
  57. class TestImapSource extends ImapSource {
  58. public function makeSearch(Model $Model, $query) {
  59. return $this->_makeSearch($Model, $query);
  60. }
  61. }
  62. /**
  63. * Testing Model
  64. *
  65. */
  66. class TestImap extends AppModel {
  67. public $useTable = false;
  68. public $recursive = -1;
  69. }