Skip to content

Commit 043f250

Browse files
committed
Counter parameter
1 parent bdf378e commit 043f250

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

lib/Extension/Core/CoreExtension.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use PhpBench\Pipeline\Extension\Core\Stage\Sampler\CurlSampler;
1313
use PhpBench\Pipeline\Extension\Core\Stage\Filter\KeysFilter;
1414
use PhpBench\Pipeline\Extension\Core\Stage\Aggregator\DescribeAggregator;
15+
use PhpBench\Pipeline\Extension\Core\Stage\Parameter\CounterParameter;
1516

1617
class CoreExtension implements PipelineExtension
1718
{
@@ -28,6 +29,7 @@ public function __construct()
2829
'filter/keys' => new KeysFilter(),
2930
'output/stream' => new StreamOutput(),
3031
'parameter/serial' => new SerialParameter(),
32+
'parameter/counter' => new CounterParameter(),
3133
'sampler/callable' => new CallableSampler(),
3234
'sampler/curl' => new CurlSampler(),
3335
'valve/take' => new TakeValve(),
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?php
2+
3+
namespace PhpBench\Pipeline\Tests\Unit\Extension\Core\Stage\Parameter;
4+
5+
use PhpBench\Pipeline\Tests\Unit\Extension\Core\CoreTestCase;
6+
7+
class CounterParameterTest extends CoreTestCase
8+
{
9+
public function testYieldsAnIncrementingValue()
10+
{
11+
$generator = $this->pipeline()
12+
->stage('parameter/counter', [
13+
'name' => 'inc',
14+
])
15+
->generator();
16+
17+
$generator->next();
18+
$generator->next();
19+
$generator->next();
20+
$generator->next();
21+
$generator->next();
22+
$generator->next();
23+
24+
$result = $generator->current();
25+
26+
$this->assertEquals(['inc' => 7], $result);
27+
}
28+
29+
public function testYieldsAnIncrementingValueWithStep2()
30+
{
31+
$generator = $this->pipeline()
32+
->stage('parameter/counter', [
33+
'name' => 'inc',
34+
'step' => 2,
35+
])
36+
->generator();
37+
38+
$generator->next();
39+
$generator->next();
40+
$generator->next();
41+
$generator->next();
42+
$generator->next();
43+
$generator->next();
44+
45+
$result = $generator->current();
46+
47+
$this->assertEquals(['inc' => 14], $result);
48+
}
49+
}

0 commit comments

Comments
 (0)