fix replacing an initial comment in accompanying period

This commit is contained in:
Julien Fastré 2021-05-18 19:19:22 +02:00
parent 30c53b17f7
commit 8e95166c24
2 changed files with 11 additions and 3 deletions

View File

@ -394,9 +394,10 @@ class AccompanyingPeriod
*/
public function setInitialComment(?Comment $comment = null): self
{
if (NULL === $comment && NULL !== $this->initialComment) {
if (NULL !== $this->initialComment) {
$this->removeComment($this->initialComment);
} elseif ($comment instanceof Comment) {
}
if ($comment instanceof Comment) {
$this->addComment($comment);
}

View File

@ -137,6 +137,7 @@ class AccompanyingPeriodTest extends \PHPUnit\Framework\TestCase
{
$period = new AccompanyingPeriod(new \DateTime());
$comment = new Comment();
$replacingComment = new Comment();
$period->setInitialComment(NULL);
$this->assertNull($period->getInitialComment());
@ -146,9 +147,15 @@ class AccompanyingPeriodTest extends \PHPUnit\Framework\TestCase
$this->assertSame($period, $comment->getAccompanyingPeriod());
$this->assertEquals(0, count($period->getComments()), "The initial comment should not appears in the list of comments");
$period->setInitialComment($replacingComment);
$this->assertSame($period->getInitialComment(), $replacingComment);
$this->assertSame($period, $replacingComment->getAccompanyingPeriod());
$this->assertEquals(0, count($period->getComments()), "The initial comment should not appears in the list of comments");
$this->assertNull($comment->getAccompanyingPeriod());
$period->setInitialComment(NULL);
$this->assertNull($period->getInitialComment());
$this->assertNull($comment->getAccompanyingPeriod());
$this->assertNull($replacingComment->getAccompanyingPeriod());
$this->assertEquals(0, count($period->getComments()), "The initial comment should not appears in the list of comments");
}
}