Spaces:
No application file
No application file
| namespace Mautic\ReportBundle\Tests\Model; | |
| use Doctrine\ORM\EntityManagerInterface; | |
| use Mautic\ChannelBundle\Helper\ChannelListHelper; | |
| use Mautic\CoreBundle\Helper\CoreParametersHelper; | |
| use Mautic\CoreBundle\Helper\UserHelper; | |
| use Mautic\CoreBundle\Security\Permissions\CorePermissions; | |
| use Mautic\CoreBundle\Translation\Translator; | |
| use Mautic\LeadBundle\Model\FieldModel; | |
| use Mautic\ReportBundle\Event\ReportBuilderEvent; | |
| use Mautic\ReportBundle\Helper\ReportHelper; | |
| use Mautic\ReportBundle\Model\CsvExporter; | |
| use Mautic\ReportBundle\Model\ExcelExporter; | |
| use Mautic\ReportBundle\Model\ReportModel; | |
| use Mautic\ReportBundle\Tests\Fixtures; | |
| use Psr\Log\LoggerInterface; | |
| use Symfony\Component\EventDispatcher\EventDispatcher; | |
| use Symfony\Component\EventDispatcher\EventDispatcherInterface; | |
| use Symfony\Component\HttpFoundation\RequestStack; | |
| use Symfony\Component\Routing\Generator\UrlGeneratorInterface; | |
| use Twig\Environment; | |
| class ReportModelTest extends \PHPUnit\Framework\TestCase | |
| { | |
| private ReportModel $reportModel; | |
| protected function setUp(): void | |
| { | |
| $fieldModelMock = $this->createMock(FieldModel::class); | |
| $fieldModelMock->method('getPublishedFieldArrays')->willReturn([]); | |
| $mockDispatcher = $this->createMock(EventDispatcher::class); | |
| $mockDispatcher->method('dispatch') | |
| ->willReturnCallback( | |
| function (ReportBuilderEvent $event) { | |
| $reportBuilderData = Fixtures::getReportBuilderEventData(); | |
| $event->addTable('assets', $reportBuilderData['all']['tables']['assets']); | |
| return $event; | |
| } | |
| ); | |
| $translatorMock = $this->createMock(Translator::class); | |
| // Make the translator return whatever string is passed to it instead of null | |
| $translatorMock->method('trans')->withAnyParameters()->willReturnArgument(0); | |
| $this->reportModel = new ReportModel( | |
| $this->createMock(CoreParametersHelper::class), | |
| $this->createMock(Environment::class), | |
| new ChannelListHelper($this->createMock(EventDispatcherInterface::class), $this->createMock(Translator::class)), | |
| $fieldModelMock, | |
| new ReportHelper($this->createMock(EventDispatcherInterface::class)), | |
| $this->createMock(CsvExporter::class), | |
| $this->createMock(ExcelExporter::class), | |
| $this->createMock(EntityManagerInterface::class), | |
| $this->createMock(CorePermissions::class), | |
| $mockDispatcher, | |
| $this->createMock(UrlGeneratorInterface::class), | |
| $translatorMock, | |
| $this->createMock(UserHelper::class), | |
| $this->createMock(LoggerInterface::class), | |
| $this->createMock(RequestStack::class) | |
| ); | |
| // Do this to build the initial set of data from the subscribers that get used in all other contexts | |
| $this->reportModel->buildAvailableReports('all'); | |
| parent::setUp(); | |
| } | |
| public function testGetColumnListWithContext(): void | |
| { | |
| $properContextFormat = 'assets'; | |
| $actual = $this->reportModel->getColumnList($properContextFormat); | |
| $expected = Fixtures::getGoodColumnList(); | |
| $this->assertEquals($expected->choices, $actual->choices); | |
| $this->assertEquals($expected->definitions, $actual->definitions); | |
| } | |
| } | |