InterfaceTest.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?php
  2. /**
  3. * @category Zend
  4. * @package Zend_Mail
  5. * @subpackage UnitTests
  6. */
  7. /**
  8. * Zend_Mail_Storage_Mbox
  9. */
  10. require_once 'Zend/Mail/Storage/Mbox.php';
  11. /**
  12. * PHPUnit test case
  13. */
  14. require_once 'PHPUnit/Framework/TestCase.php';
  15. /**
  16. * @category Zend
  17. * @package Zend_Mail
  18. * @subpackage UnitTests
  19. */
  20. class Zend_Mail_InterfaceTest extends PHPUnit_Framework_TestCase
  21. {
  22. protected $_mboxFile;
  23. public function setUp()
  24. {
  25. $this->_mboxFile = dirname(__FILE__) . '/_files/test.mbox/INBOX';
  26. }
  27. public function testCount()
  28. {
  29. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  30. $count = count($list);
  31. $this->assertEquals(7, $count);
  32. }
  33. public function testIsset()
  34. {
  35. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  36. $this->assertTrue(isset($list[1]));
  37. }
  38. public function testNotIsset()
  39. {
  40. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  41. $this->assertFalse(isset($list[10]));
  42. }
  43. public function testArrayGet()
  44. {
  45. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  46. $subject = $list[1]->subject;
  47. $this->assertEquals('Simple Message', $subject);
  48. }
  49. public function testArraySetFail()
  50. {
  51. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  52. try {
  53. $list[1] = 'test';
  54. } catch (Exception $e) {
  55. return; // test ok
  56. }
  57. $this->fail('no exception thrown while writing to array access');
  58. }
  59. public function testIterationKey()
  60. {
  61. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  62. $pos = 1;
  63. foreach ($list as $key => $message) {
  64. $this->assertEquals($key, $pos, "wrong key in iteration $pos");
  65. ++$pos;
  66. }
  67. }
  68. public function testIterationIsMessage()
  69. {
  70. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  71. foreach ($list as $key => $message) {
  72. $this->assertTrue($message instanceof Zend_Mail_Message_Interface, 'value in iteration is not a mail message');
  73. }
  74. }
  75. public function testIterationRounds()
  76. {
  77. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  78. $count = 0;
  79. foreach ($list as $key => $message) {
  80. ++$count;
  81. }
  82. $this->assertEquals(7, $count);
  83. }
  84. public function testIterationWithSeek()
  85. {
  86. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  87. $count = 0;
  88. foreach (new LimitIterator($list, 1, 3) as $key => $message) {
  89. ++$count;
  90. }
  91. $this->assertEquals(3, $count);
  92. }
  93. public function testIterationWithSeekCapped()
  94. {
  95. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  96. $count = 0;
  97. foreach (new LimitIterator($list, 3, 7) as $key => $message) {
  98. ++$count;
  99. }
  100. $this->assertEquals(5, $count);
  101. }
  102. public function testFallback()
  103. {
  104. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  105. try {
  106. $result = $list->noop();
  107. $this->assertTrue($result);
  108. } catch (Exception $e) {
  109. $this->fail('exception raised while calling noop thru fallback');
  110. }
  111. }
  112. public function testWrongVariable()
  113. {
  114. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  115. try {
  116. $list->thisdoesnotexist;
  117. } catch (Exception $e) {
  118. return; // test ok
  119. }
  120. $this->fail('no exception thrown while reading wrong variable (via __get())');
  121. }
  122. public function testGetHeaders()
  123. {
  124. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  125. $headers = $list[1]->getHeaders();
  126. $this->assertTrue(count($headers) > 0);
  127. }
  128. public function testWrongHeader()
  129. {
  130. $list = new Zend_Mail_Storage_Mbox(array('filename' => $this->_mboxFile));
  131. try {
  132. $list[1]->thisdoesnotexist;
  133. } catch (Exception $e) {
  134. return; // test ok
  135. }
  136. $this->fail('no exception thrown while reading wrong header');
  137. }
  138. }