Skip to content

Commit 8e2d302

Browse files
committed
Add toArray method to the FeaturePresenter
1 parent 5d447a5 commit 8e2d302

File tree

3 files changed

+36
-8
lines changed

3 files changed

+36
-8
lines changed

src/Console/ListCommand.php

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,7 @@ protected function getRows() : array
3535
foreach ($features as $name)
3636
{
3737
$feature = new FeaturePresenter($this->rollout->get($name));
38-
39-
$rows[] = [
40-
'name' => $feature->getName(),
41-
'status' => $feature->getDisplayStatus(),
42-
'request-parameter' => $feature->getRequestParameter(),
43-
'percentage' => $feature->getPercentage(),
44-
'users' => $feature->getUsers()
45-
];
38+
$rows[] = $feature->toArray();
4639
}
4740

4841
return $rows;

src/FeaturePresenter.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,20 @@ public function getUsers() : string
107107
{
108108
return implode(', ', $this->feature->getUsers());
109109
}
110+
111+
/**
112+
* Returns an array representation of the feature presenter.
113+
*
114+
* @return array
115+
*/
116+
public function toArray() : array
117+
{
118+
return [
119+
'name' => $this->getName(),
120+
'status' => $this->getDisplayStatus(),
121+
'request-parameter' => $this->getRequestParameter(),
122+
'percentage' => $this->getPercentage(),
123+
'users' => $this->getUsers()
124+
];
125+
}
110126
}

tests/FeaturePresenterTest.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,4 +149,23 @@ function get_users_returns_a_comma_seperated_string_of_users()
149149

150150
$this->assertEquals('user_1, user_2, user_3', $presenter->getUsers());
151151
}
152+
153+
/**
154+
* @test
155+
*/
156+
function to_array_returns_an_array_representation_of_the_underlying_feature()
157+
{
158+
$expected = [
159+
'name' => 'name',
160+
'status' => FeaturePresenter::$statuses['request_param'],
161+
'request-parameter' => 'param',
162+
'percentage' => 0,
163+
'users' => 'a'
164+
];
165+
166+
$feature = new Feature('name', '0|a|d|param');
167+
$presenter = new FeaturePresenter($feature);
168+
169+
$this->assertEquals($expected, $presenter->toArray());
170+
}
152171
}

0 commit comments

Comments
 (0)