Example #1
0
 /** @dataProvider valueDataProvider */
 public function testAwaitWrappedGeneratorCreator($value)
 {
     $this->given($creator = function ($limit, $value) {
         while ($limit-- > 0) {
             yield;
         }
         return (function () use($value) {
             yield;
             return $value;
         })();
     })->then->object(await(runtime\wrap($creator(3, $value))))->isInstanceOf(\generator::class);
 }
Example #2
0
 /** @dataProvider valueDataProvider */
 public function testAllWrappedGeneratorCreators($value, $otherValue = null)
 {
     $this->given($otherValue = $otherValue ?? $value, $creator = function ($limit, $value) {
         while ($limit-- > 0) {
             yield;
         }
         return (function () use($value) {
             yield;
             return $value;
         })();
     })->then->object($generator = all(runtime\wrap($creator(3, $value)), runtime\wrap($creator(5, $otherValue))))->isInstanceOf(\generator::class)->array(runtime\await($generator))->object[0]->isInstanceOf(\generator::class)->object[1]->isInstanceOf(\generator::class);
 }
Example #3
0
 /** @dataProvider valueDataProvider */
 public function testRaceWrappedGeneratorCreators($value, $otherValue = null)
 {
     $this->given($otherValue = $otherValue ?? $value, $creator = function ($limit, $value) {
         while ($limit-- > 0) {
             yield;
         }
         return (function () use($value) {
             yield;
             return $value;
         })();
     })->then->object($generator = race(runtime\wrap($creator(5, $value)), runtime\wrap($creator(3, $otherValue))))->isInstanceOf(\generator::class)->object(runtime\await($generator))->isInstanceOf(\generator::class)->variable(runtime\await(runtime\await($generator)))->isIdenticalTo($value);
 }