From b9956e38b89fac05613364c747f23f0de318285d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Fri, 24 Nov 2023 23:16:26 +0100 Subject: [PATCH] Dont concat if one of the strings is empty during part merge --- .../Mergers/EntityMergerHelperTrait.php | 16 ++++++++++++++++ .../Mergers/EntityMergerHelperTraitTest.php | 13 +++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/Services/EntityMergers/Mergers/EntityMergerHelperTrait.php b/src/Services/EntityMergers/Mergers/EntityMergerHelperTrait.php index b2fbff24..940f6fea 100644 --- a/src/Services/EntityMergers/Mergers/EntityMergerHelperTrait.php +++ b/src/Services/EntityMergers/Mergers/EntityMergerHelperTrait.php @@ -319,6 +319,14 @@ trait EntityMergerHelperTrait return $t; } + //Skip empty strings + if (trim($t) === '') { + return trim($o); + } + if (trim($o) === '') { + return trim($t); + } + return trim($t) . $separator . trim($o); }, $target, @@ -344,6 +352,14 @@ trait EntityMergerHelperTrait return $t; } + //Skip empty strings + if (trim($t) === '') { + return trim($o); + } + if (trim($o) === '') { + return trim($t); + } + return sprintf("%s\n\n%s:\n%s", trim($t), $other->getName(), diff --git a/tests/Services/EntityMergers/Mergers/EntityMergerHelperTraitTest.php b/tests/Services/EntityMergers/Mergers/EntityMergerHelperTraitTest.php index c8366019..674bd524 100644 --- a/tests/Services/EntityMergers/Mergers/EntityMergerHelperTraitTest.php +++ b/tests/Services/EntityMergers/Mergers/EntityMergerHelperTraitTest.php @@ -207,6 +207,13 @@ class EntityMergerHelperTraitTest extends KernelTestCase $obj2->string_property = 'Test1'; $this->assertSame($obj1, $this->mergeTextWithSeparator($obj1, $obj2, 'string_property', ' # ')); $this->assertSame('Test1', $obj1->string_property); + + //Test what happens if the second text is empty + $obj1->string_property = 'Test1'; + $obj2->string_property = ''; + $this->assertSame($obj1, $this->mergeTextWithSeparator($obj1, $obj2, 'string_property', ' # ')); + $this->assertSame('Test1', $obj1->string_property); + } public function testMergeComment(): void @@ -227,5 +234,11 @@ class EntityMergerHelperTraitTest extends KernelTestCase $obj2->setComment('Comment1'); $this->assertSame($obj1, $this->mergeComment($obj1, $obj2)); $this->assertSame('Comment1', $obj1->getComment()); + + //Test what happens if the second comment is empty + $obj1->setComment('Comment1'); + $obj2->setComment(''); + $this->assertSame($obj1, $this->mergeComment($obj1, $obj2)); + $this->assertSame('Comment1', $obj1->getComment()); } }