Comments for multiple events are flattened and combined

This commit is contained in:
Oliver Davies 2019-02-13 23:53:54 +00:00
parent 6b8931ef5f
commit ac520c4ea5
2 changed files with 42 additions and 1 deletions

View file

@ -13,14 +13,30 @@ class Picker
*/
private $hosts;
/**
* @var \Tightenco\Collect\Support\Collection
*/
private $comments;
/**
* Picker constructor.
*/
public function __construct()
{
$this->comments = collect();
$this->hosts = collect();
}
/**
* Retrieve the combined comments for all events.
*
* @return \Tightenco\Collect\Support\Collection
*/
public function getComments(): Collection
{
return $this->comments;
}
/**
* Retrieve the event hosts.
*
@ -48,4 +64,14 @@ class Picker
return $this;
}
/**
* Set the comments for the events.
*
* @param \Tightenco\Collect\Support\Collection $comments
*/
public function setComments(Collection $comments)
{
$this->comments = $comments->flatten(1)->values();
}
}

View file

@ -40,7 +40,22 @@ class PickerTest extends TestCase
/** @test */
public function comments_for_multiple_events_are_flattened_and_combined()
{
$this->markTestIncomplete();
$data = [
[
['comment' => 'Great talk!'],
['comment' => 'Could be better.'],
],
[
['comment' => 'Needs more cat pictures.'],
],
];
$picker = new Picker();
$picker->setComments(collect($data));
$comments = $picker->getComments();
$this->assertInstanceOf(Collection::class, $comments);
$this->assertCount(3, $comments);
}
/** @test */