|
|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace App\Tests\Unit\Service\Doctrine;
|
|
|
|
|
|
+use App\Filter\Doctrine\TimeConstraint\AbstractTimeFilter;
|
|
|
use App\Filter\Doctrine\TimeConstraint\ActivityYearFilter;
|
|
|
use App\Filter\Doctrine\TimeConstraint\DatetimeFilter;
|
|
|
use App\Service\Constraint\ActivityYearConstraint;
|
|
|
@@ -19,6 +20,21 @@ class TestableFiltersConfigurationService extends FiltersConfigurationService
|
|
|
return parent::getFilters();
|
|
|
}
|
|
|
|
|
|
+ public function timeFiltersAlreadyDisabled(): bool
|
|
|
+ {
|
|
|
+ return parent::timeFiltersAlreadyDisabled();
|
|
|
+ }
|
|
|
+
|
|
|
+ public function disableFilter(string $name): void
|
|
|
+ {
|
|
|
+ parent::disableFilter($name);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function enableFilter(string $name): void
|
|
|
+ {
|
|
|
+ parent::enableFilter($name);
|
|
|
+ }
|
|
|
+
|
|
|
public function setPreviousTimeConstraintState(?bool $value): void
|
|
|
{
|
|
|
$this->previousTimeConstraintState = $value;
|
|
|
@@ -43,7 +59,7 @@ class FiltersConfigurationServiceTest extends TestCase
|
|
|
$this->activityYearConstraint = $this->getMockBuilder(ActivityYearConstraint::class)->disableOriginalConstructor()->getMock();
|
|
|
}
|
|
|
|
|
|
- public function getSUTMockForMethod(string $methodName): MockObject|TestableFiltersConfigurationService
|
|
|
+ public function getFiltersConfigurationServiceMockFor(string $methodName): MockObject|TestableFiltersConfigurationService
|
|
|
{
|
|
|
return $this
|
|
|
->getMockBuilder(TestableFiltersConfigurationService::class)
|
|
|
@@ -54,7 +70,7 @@ class FiltersConfigurationServiceTest extends TestCase
|
|
|
|
|
|
public function testGetFilters(): void
|
|
|
{
|
|
|
- $filterConfigurationService = $this->getSUTMockForMethod('getFilters');
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('getFilters');
|
|
|
|
|
|
$filterCollection = $this->getMockBuilder(FilterCollection::class)->disableOriginalConstructor()->getMock();
|
|
|
|
|
|
@@ -68,7 +84,7 @@ class FiltersConfigurationServiceTest extends TestCase
|
|
|
|
|
|
public function testConfigureTimeConstraintFilters(): void
|
|
|
{
|
|
|
- $filterConfigurationService = $this->getSUTMockForMethod('configureTimeConstraintFilters');
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('configureTimeConstraintFilters');
|
|
|
|
|
|
$accessId = 123;
|
|
|
|
|
|
@@ -100,20 +116,10 @@ class FiltersConfigurationServiceTest extends TestCase
|
|
|
|
|
|
public function testSuspendTimeConstraintFilters(): void
|
|
|
{
|
|
|
- $filterConfigurationService = $this->getSUTMockForMethod('suspendTimeConstraintFilters');
|
|
|
-
|
|
|
- $filterCollection = $this->getMockBuilder(FilterCollection::class)->disableOriginalConstructor()->getMock();
|
|
|
-
|
|
|
- $this->em->expects(self::once())->method('getFilters')->willReturn($filterCollection);
|
|
|
-
|
|
|
- $filterCollection->method('isEnabled')->with('date_time_filter')->willReturn(true);
|
|
|
-
|
|
|
- $datetimeFilter = $this->getMockBuilder(DatetimeFilter::class)->disableOriginalConstructor()->getMock();
|
|
|
-
|
|
|
- $filterCollection->method('getFilter')->with('date_time_filter')->willReturn($datetimeFilter);
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('suspendTimeConstraintFilters');
|
|
|
|
|
|
- $datetimeFilter->method('isDisabled')->willReturn(false);
|
|
|
- $datetimeFilter->expects(self::once())->method('setDisabled')->with(true);
|
|
|
+ $filterConfigurationService->expects(self::once())->method('timeFiltersAlreadyDisabled')->willReturn(false);
|
|
|
+ $filterConfigurationService->expects(self::exactly(2))->method('disableFilter')->withConsecutive(['date_time_filter'], ['activity_year_filter']);
|
|
|
|
|
|
$filterConfigurationService->suspendTimeConstraintFilters();
|
|
|
|
|
|
@@ -125,25 +131,21 @@ class FiltersConfigurationServiceTest extends TestCase
|
|
|
|
|
|
public function testSuspendTimeConstraintFiltersAlreadySuspended(): void
|
|
|
{
|
|
|
- $filterConfigurationService = $this->getSUTMockForMethod('suspendTimeConstraintFilters');
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('suspendTimeConstraintFilters');
|
|
|
|
|
|
$filterConfigurationService->setPreviousTimeConstraintState(true);
|
|
|
|
|
|
$this->expectException(\RuntimeException::class);
|
|
|
- $this->expectExceptionMessage('date_time_filter is already suspended');
|
|
|
+ $this->expectExceptionMessage('time constraints is already suspended');
|
|
|
|
|
|
$filterConfigurationService->suspendTimeConstraintFilters();
|
|
|
}
|
|
|
|
|
|
public function testSuspendTimeConstraintFiltersAlreadyDisabled(): void
|
|
|
{
|
|
|
- $filterConfigurationService = $this->getSUTMockForMethod('suspendTimeConstraintFilters');
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('suspendTimeConstraintFilters');
|
|
|
|
|
|
- $filterCollection = $this->getMockBuilder(FilterCollection::class)->disableOriginalConstructor()->getMock();
|
|
|
-
|
|
|
- $this->em->expects(self::once())->method('getFilters')->willReturn($filterCollection);
|
|
|
-
|
|
|
- $filterCollection->method('isEnabled')->with('date_time_filter')->willReturn(false);
|
|
|
+ $filterConfigurationService->expects(self::once())->method('timeFiltersAlreadyDisabled')->willReturn(true);
|
|
|
|
|
|
$filterConfigurationService->suspendTimeConstraintFilters();
|
|
|
|
|
|
@@ -153,61 +155,108 @@ class FiltersConfigurationServiceTest extends TestCase
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- public function testRestoreTimeConstraintFilters(): void
|
|
|
+ public function testTimeFiltersAlreadyDisabledReturnTrue(): void
|
|
|
{
|
|
|
- $filterConfigurationService = $this->getSUTMockForMethod('restoreTimeConstraintFilters');
|
|
|
-
|
|
|
- $filterConfigurationService->setPreviousTimeConstraintState(true);
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('timeFiltersAlreadyDisabled');
|
|
|
|
|
|
$filterCollection = $this->getMockBuilder(FilterCollection::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $filterConfigurationService->expects(self::once())->method('getFilters')->willReturn($filterCollection);
|
|
|
|
|
|
- $this->em->expects(self::once())->method('getFilters')->willReturn($filterCollection);
|
|
|
+ $filterCollection->expects(self::exactly(2))->method('isEnabled')->withConsecutive(['date_time_filter'], ['activity_year_filter'])->willReturnOnConsecutiveCalls(false, false);
|
|
|
|
|
|
- $filterCollection->method('isEnabled')->with('date_time_filter')->willReturn(true);
|
|
|
+ $this->assertEquals(
|
|
|
+ true,
|
|
|
+ $filterConfigurationService->timeFiltersAlreadyDisabled()
|
|
|
+ );
|
|
|
+ }
|
|
|
|
|
|
- $datetimeFilter = $this->getMockBuilder(DatetimeFilter::class)->disableOriginalConstructor()->getMock();
|
|
|
+ public function testTimeFiltersAlreadyDisabledReturnFalseFirstArgTrue(): void
|
|
|
+ {
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('timeFiltersAlreadyDisabled');
|
|
|
|
|
|
- $filterCollection->method('getFilter')->with('date_time_filter')->willReturn($datetimeFilter);
|
|
|
+ $filterCollection = $this->getMockBuilder(FilterCollection::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $filterConfigurationService->expects(self::once())->method('getFilters')->willReturn($filterCollection);
|
|
|
|
|
|
- $datetimeFilter->expects(self::once())->method('setDisabled')->with(true);
|
|
|
+ $filterCollection->expects(self::once())->method('isEnabled')->withConsecutive(['date_time_filter'])->willReturn(true);
|
|
|
|
|
|
- $filterConfigurationService->restoreTimeConstraintFilters();
|
|
|
+ $this->assertEquals(
|
|
|
+ false,
|
|
|
+ $filterConfigurationService->timeFiltersAlreadyDisabled()
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ public function testTimeFiltersAlreadyDisabledReturnFalseSecondArgTrue(): void
|
|
|
+ {
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('timeFiltersAlreadyDisabled');
|
|
|
+
|
|
|
+ $filterCollection = $this->getMockBuilder(FilterCollection::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $filterConfigurationService->expects(self::once())->method('getFilters')->willReturn($filterCollection);
|
|
|
+
|
|
|
+ $filterCollection->expects(self::exactly(2))->method('isEnabled')->withConsecutive(['date_time_filter'], ['activity_year_filter'])->willReturnOnConsecutiveCalls(false, true);
|
|
|
|
|
|
$this->assertEquals(
|
|
|
- $filterConfigurationService->getPreviousTimeConstraintState(),
|
|
|
- null
|
|
|
+ false,
|
|
|
+ $filterConfigurationService->timeFiltersAlreadyDisabled()
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- public function testRestoreTimeConstraintFiltersNotSuspended(): void
|
|
|
+ public function testDisableFilters(): void
|
|
|
{
|
|
|
- $filterConfigurationService = $this->getSUTMockForMethod('restoreTimeConstraintFilters');
|
|
|
+ $fooFilter = 'filter_name';
|
|
|
|
|
|
- $this->expectException(\RuntimeException::class);
|
|
|
- $this->expectExceptionMessage('date_time_filter has not been suspended, can not be restored');
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('disableFilter');
|
|
|
|
|
|
- $filterConfigurationService->restoreTimeConstraintFilters();
|
|
|
+ $filterCollection = $this->getMockBuilder(FilterCollection::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $filterConfigurationService->expects(self::once())->method('getFilters')->willReturn($filterCollection);
|
|
|
+
|
|
|
+ $abstractTimeFilter = $this->getMockBuilder(AbstractTimeFilter::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $filterCollection->expects(self::once())->method('getFilter')->withConsecutive([$fooFilter])->willReturn($abstractTimeFilter);
|
|
|
+
|
|
|
+ $abstractTimeFilter->expects(self::once())->method('disable');
|
|
|
+
|
|
|
+ $filterConfigurationService->disableFilter($fooFilter);
|
|
|
}
|
|
|
|
|
|
- public function testRestoreTimeConstraintFiltersNotEnabled(): void
|
|
|
+ public function testEnableFilter(): void
|
|
|
{
|
|
|
- $filterConfigurationService = $this->getSUTMockForMethod('restoreTimeConstraintFilters');
|
|
|
+ $fooFilter = 'filter_name';
|
|
|
|
|
|
- $filterConfigurationService->setPreviousTimeConstraintState(true);
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('enableFilter');
|
|
|
|
|
|
$filterCollection = $this->getMockBuilder(FilterCollection::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $filterConfigurationService->expects(self::once())->method('getFilters')->willReturn($filterCollection);
|
|
|
|
|
|
- $this->em->expects(self::once())->method('getFilters')->willReturn($filterCollection);
|
|
|
+ $abstractTimeFilter = $this->getMockBuilder(AbstractTimeFilter::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $filterCollection->expects(self::once())->method('getFilter')->withConsecutive([$fooFilter])->willReturn($abstractTimeFilter);
|
|
|
+
|
|
|
+ $abstractTimeFilter->expects(self::once())->method('enable');
|
|
|
+
|
|
|
+ $filterConfigurationService->enableFilter($fooFilter);
|
|
|
+ }
|
|
|
|
|
|
- $filterCollection->method('isEnabled')->with('date_time_filter')->willReturn(false);
|
|
|
+ public function testRestoreTimeConstraintFilters(): void
|
|
|
+ {
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('restoreTimeConstraintFilters');
|
|
|
+
|
|
|
+ $filterConfigurationService->setPreviousTimeConstraintState(true);
|
|
|
|
|
|
- $filterCollection->expects(self::never())->method('getFilter')->with('date_time_filter');
|
|
|
+ $filterConfigurationService->expects(self::exactly(2))->method('enableFilter')->withConsecutive(['date_time_filter'], ['activity_year_filter']);
|
|
|
|
|
|
$filterConfigurationService->restoreTimeConstraintFilters();
|
|
|
|
|
|
$this->assertEquals(
|
|
|
- $filterConfigurationService->getPreviousTimeConstraintState(),
|
|
|
- null
|
|
|
+ null,
|
|
|
+ $filterConfigurationService->getPreviousTimeConstraintState()
|
|
|
);
|
|
|
}
|
|
|
+
|
|
|
+ public function testRestoreTimeConstraintFiltersNotAlreadySuspended(): void
|
|
|
+ {
|
|
|
+ $filterConfigurationService = $this->getFiltersConfigurationServiceMockFor('restoreTimeConstraintFilters');
|
|
|
+
|
|
|
+ $this->expectException(\RuntimeException::class);
|
|
|
+ $this->expectExceptionMessage('time constraints has not been suspended, can not be restored');
|
|
|
+
|
|
|
+ $filterConfigurationService->restoreTimeConstraintFilters();
|
|
|
+ }
|
|
|
}
|