From 7eac0a7cd0adcbe35335f8b3ab0f579b89aa32d5 Mon Sep 17 00:00:00 2001 From: Zdeno Kuzmany Date: Mon, 11 Feb 2019 10:36:55 +0100 Subject: [PATCH 1/2] Unit test fix --- .../Tests/Segment/Decorator/Date/DateOptionFactoryTest.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/bundles/LeadBundle/Tests/Segment/Decorator/Date/DateOptionFactoryTest.php b/app/bundles/LeadBundle/Tests/Segment/Decorator/Date/DateOptionFactoryTest.php index a9c93502825..19a9c9ab98f 100644 --- a/app/bundles/LeadBundle/Tests/Segment/Decorator/Date/DateOptionFactoryTest.php +++ b/app/bundles/LeadBundle/Tests/Segment/Decorator/Date/DateOptionFactoryTest.php @@ -11,6 +11,7 @@ namespace Mautic\LeadBundle\Tests\Segment\Decorator\Date; +use Mautic\CoreBundle\Helper\DateRelativeParser; use Mautic\LeadBundle\Segment\ContactSegmentFilterCrate; use Mautic\LeadBundle\Segment\Decorator\Date\DateOptionFactory; use Mautic\LeadBundle\Segment\Decorator\Date\Day\DateDayToday; @@ -265,6 +266,10 @@ private function getFilterDecorator($filterName) $dateDecorator = $this->createMock(DateDecorator::class); $relativeDate = $this->createMock(RelativeDate::class); + $dateDecorator->method('dateRelativeParser')->willReturn( + (new DateRelativeParser(['anniversary'=>'anniversary'], '')) + ); + $relativeDate->method('getRelativeDateStrings') ->willReturn( [ From b2536bb9eca2b9634dad3aa2089082a31562e038 Mon Sep 17 00:00:00 2001 From: Zdeno Kuzmany Date: Mon, 11 Feb 2019 10:58:15 +0100 Subject: [PATCH 2/2] Rename some methods --- .../CoreBundle/Helper/DateRelativeParser.php | 18 ++++++++++-------- .../unit/Helper/DateRelativeParsersTest.php | 4 ++-- .../Decorator/Date/Other/DateAnniversary.php | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/app/bundles/CoreBundle/Helper/DateRelativeParser.php b/app/bundles/CoreBundle/Helper/DateRelativeParser.php index e7ce0b30cb6..9bb9b877314 100644 --- a/app/bundles/CoreBundle/Helper/DateRelativeParser.php +++ b/app/bundles/CoreBundle/Helper/DateRelativeParser.php @@ -32,10 +32,12 @@ public function __construct(array $dictionary, $timeframe, $prefixes = []) { $this->dictionary = $dictionary; $this->timeframe = trim(str_replace($prefixes, '', $timeframe)); - $this->prefix = trim(str_replace([$this->getRelativeString(), $this->getRelativeDate()], '', $timeframe)); + $this->prefix = trim(str_replace([$this->getStringPart(), $this->getTimeframePart()], '', $timeframe)); } /** + * Relative date from dictionary or start with +/-. + * * @return bool */ public function hasRelativeDate() @@ -52,31 +54,31 @@ public function hasRelativeDate() */ public function hasDateFromDictionary() { - return in_array($this->getRelativeString(), $this->getDictionaryVariants()); + return in_array($this->getStringPart(), $this->getDictionaryVariants()); } /** - * Return timeframe. + * Return string part of time frame, for exampele: anniversary. * * @return string */ - private function getRelativeString() + private function getStringPart() { - return trim(str_replace($this->getRelativeDate(), '', $this->timeframe)); + return trim(str_replace($this->getTimeframePart(), '', $this->timeframe)); } /** - * Return all after /birthday string, for example -1 day. + * Return timeframe part, for example +1 day. * * @return string */ - public function getRelativeDate() + public function getTimeframePart() { return trim(str_replace($this->getDictionaryVariants(), '', $this->timeframe)); } /** - * Return all possible variants for dates. + * Return all possible variants with translations. * * @return array */ diff --git a/app/bundles/CoreBundle/Tests/unit/Helper/DateRelativeParsersTest.php b/app/bundles/CoreBundle/Tests/unit/Helper/DateRelativeParsersTest.php index 107a8ebe361..cfafb3d409b 100644 --- a/app/bundles/CoreBundle/Tests/unit/Helper/DateRelativeParsersTest.php +++ b/app/bundles/CoreBundle/Tests/unit/Helper/DateRelativeParsersTest.php @@ -37,11 +37,11 @@ public function testRelativeDate() $dateRelativeParser = new DateRelativeParser($this->dictionary, 'date +1 day', ['datetime', 'date']); $this->assertTrue($dateRelativeParser->hasRelativeDate()); $dateRelativeParser = new DateRelativeParser($this->dictionary, 'date +1 day', ['datetime', 'date']); - $this->assertEquals('+1 day', $dateRelativeParser->getRelativeDate()); + $this->assertEquals('+1 day', $dateRelativeParser->getTimeframePart()); $dateRelativeParser = new DateRelativeParser($this->dictionary, 'date +1 day', ['datetime', 'date']); $this->assertEquals('date', $dateRelativeParser->getPrefix()); $dateRelativeParser = new DateRelativeParser($this->dictionary, 'date anniversary +1 day', ['datetime', 'date']); - $this->assertEquals('+1 day', $dateRelativeParser->getRelativeDate()); + $this->assertEquals('+1 day', $dateRelativeParser->getTimeframePart()); $dateRelativeParser = new DateRelativeParser($this->dictionary, 'date anniversary +1 day', ['datetime', 'date']); $this->assertEquals('date', $dateRelativeParser->getPrefix()); $this->assertEquals(date('Y').'-07-07', $dateRelativeParser->getAnniversaryDate('2018-07-07')); diff --git a/app/bundles/LeadBundle/Segment/Decorator/Date/Other/DateAnniversary.php b/app/bundles/LeadBundle/Segment/Decorator/Date/Other/DateAnniversary.php index cafdd94383c..5498f859bd8 100644 --- a/app/bundles/LeadBundle/Segment/Decorator/Date/Other/DateAnniversary.php +++ b/app/bundles/LeadBundle/Segment/Decorator/Date/Other/DateAnniversary.php @@ -79,7 +79,7 @@ public function getParameterHolder(ContactSegmentFilterCrate $contactSegmentFilt public function getParameterValue(ContactSegmentFilterCrate $contactSegmentFilterCrate) { $filter = $contactSegmentFilterCrate->getFilter(); - $relativeFilter = $this->dateDecorator->dateRelativeParser($filter)->getRelativeDate(); + $relativeFilter = $this->dateDecorator->dateRelativeParser($filter)->getTimeframePart(); $dateTimeHelper = $this->dateDecorator->getDefaultDate($relativeFilter); return $dateTimeHelper->toUtcString('%-m-d');