AbstractCollectionTest.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Migration\ResourceModel\Document;
  7. class AbstractCollectionTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Migration\ResourceModel\Document\Collection
  11. */
  12. protected $documentCollection;
  13. /**
  14. * @var \Migration\ResourceModel\Document[]
  15. */
  16. protected $data;
  17. /**
  18. * @return void
  19. */
  20. protected function setUp()
  21. {
  22. $document1 = $this->createMock(\Migration\ResourceModel\Document::class);
  23. $document1->expects($this->any())->method('getName')->will($this->returnValue('Doc1'));
  24. $document2 = $this->createMock(\Migration\ResourceModel\Document::class);
  25. $document2->expects($this->any())->method('getName')->will($this->returnValue('Doc2'));
  26. $document3 = $this->createMock(\Migration\ResourceModel\Document::class);
  27. $document3->expects($this->any())->method('getName')->will($this->returnValue('Doc3'));
  28. $this->data = [$document1, $document2, $document3];
  29. $this->documentCollection = new \Migration\ResourceModel\Document\Collection($this->data);
  30. }
  31. /**
  32. * @return void
  33. */
  34. public function testCurrent()
  35. {
  36. $this->assertSame($this->data[0], $this->documentCollection->current());
  37. $this->documentCollection->next();
  38. $this->assertSame($this->data[1], $this->documentCollection->current());
  39. }
  40. /**
  41. * @return void
  42. */
  43. public function testKey()
  44. {
  45. $this->assertEquals(0, $this->documentCollection->key());
  46. $this->documentCollection->next();
  47. $this->documentCollection->next();
  48. $this->assertEquals(2, $this->documentCollection->key());
  49. }
  50. /**
  51. * @return void
  52. */
  53. public function testNext()
  54. {
  55. $this->assertEquals(0, $this->documentCollection->key());
  56. $this->documentCollection->next();
  57. $this->assertEquals(1, $this->documentCollection->key());
  58. }
  59. /**
  60. * @return void
  61. */
  62. public function testRewind()
  63. {
  64. $this->documentCollection->next();
  65. $this->assertEquals(1, $this->documentCollection->key());
  66. $this->documentCollection->rewind();
  67. $this->assertEquals(0, $this->documentCollection->key());
  68. }
  69. /**
  70. * @return void
  71. */
  72. public function testValid()
  73. {
  74. $this->assertTrue($this->documentCollection->valid());
  75. }
  76. /**
  77. * @return void
  78. */
  79. public function testNotValid()
  80. {
  81. $this->documentCollection->next();
  82. $this->documentCollection->next();
  83. $this->documentCollection->next();
  84. $this->documentCollection->next();
  85. $this->assertFalse($this->documentCollection->valid());
  86. }
  87. /**
  88. * @return void
  89. */
  90. public function testCount()
  91. {
  92. $this->assertEquals(3, $this->documentCollection->count());
  93. }
  94. /**
  95. * @return void
  96. */
  97. public function testIterator()
  98. {
  99. $result = '';
  100. foreach ($this->documentCollection as $key => $value) {
  101. $result .= ' ' . $key . '=>' . $value->getName();
  102. }
  103. $this->assertEquals(' 0=>Doc1 1=>Doc2 2=>Doc3', $result);
  104. }
  105. }