Hoa central
Repeater.php
Go to the documentation of this file.
1 <?php
2 
37 namespace Hoa\Iterator\Test\Unit;
38 
39 use Hoa\Iterator as LUT;
40 use Hoa\Test;
41 
51 {
52  private static $_dummyArray = ['f', 'o', 'o', 'b', 'a', 'r'];
53 
54 
55 
56  public function case_classic()
57  {
58  $this
59  ->given(
60  $iterator = new LUT\Map(self::$_dummyArray),
61  $repeater = new LUT\Repeater($iterator, 3)
62  )
63  ->when($result = iterator_to_array($repeater))
64  ->then
65  ->array($result)
66  ->isEqualTo(
67  self::$_dummyArray +
68  self::$_dummyArray +
69  self::$_dummyArray
70  );
71  }
72 
73  public function case_with_body()
74  {
75  $self = $this;
76 
77  $this
78  ->given(
79  $iterator = new LUT\Map(self::$_dummyArray),
80  $count = 0,
81  $repeater = new LUT\Repeater(
82  $iterator,
83  3,
84  function ($repetition) use ($self, &$count) {
85  $this
86  ->integer($repetition)
87  ->isEqualTo($count + 1);
88 
89  ++$count;
90  })
91  )
92  ->when($result = iterator_to_array($repeater))
93  ->then
94  ->array($result)
95  ->isEqualTo(
96  self::$_dummyArray +
97  self::$_dummyArray +
98  self::$_dummyArray
99  )
100  ->integer($count)
101  ->isEqualTo(3);
102  }
103 }