mirror of https://github.com/FriendsOfTYPO3/tea.git synced 2024-11-21 22:16:13 +01:00

[TASK] Add functional test for createTestDataCommand

Related #1120
This commit is contained in:
Karsten Nowak 2024-07-30 19:13:44 +02:00
parent febf422b9b
commit 7d1176c024
5 changed files with 124 additions and 0 deletions

View file

@ -0,0 +1,106 @@
<?php
declare(strict_types=1);
namespace TTN\Tea\Tests\Functional\Command;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Tester\CommandTester;
use TTN\Tea\Command\CreateTestDataCommand;
use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
/**
* @covers \TTN\Tea\Command\CreateTestDataCommand
*/
class CreateTestDataCommandTest extends FunctionalTestCase
{
private const COMMAND_NAME = 'tea:createtestdata';
protected array $testExtensionsToLoad = ['ttn/tea'];
private CreateTestDataCommand $subject;
private CommandTester $commandTester;
protected function setUp(): void
{
parent::setUp();
$this->importCSVDataSet(__DIR__ . '/Fixtures/Database/Pages.csv');
$this->subject = new CreateTestDataCommand(self::COMMAND_NAME);
$application = new Application();
$application->add($this->subject);
$command = $application->find('tea:createtestdata');
$this->commandTester = new CommandTester($command);
}
/**
* @test
*/
public function isConsoleCommand(): void
{
self::assertInstanceOf(Command::class, $this->subject);
}
/**
* @test
*/
public function hasDescription(): void
{
$expected = 'Create test data for the tea extension in an already existing page (sysfolder).';
self::assertSame($expected, $this->subject->getHelp());
}
/**
* @test
*/
public function hasHelpText(): void
{
$expected = 'Create test data for the tea extension in an already existing page (sysfolder).';
self::assertSame($expected, $this->subject->getHelp());
}
/**
* @test
*/
public function runReturnsSuccessStatus(): void
{
$result = $this->commandTester->execute(
[
'pageUid' => '1',
],
);
self::assertSame(Command::SUCCESS, $result);
}
/**
* @test
*/
public function testDataGetsCreated(): void
{
$this->commandTester->execute([
'pageUid' => '1',
]);
self::assertCSVDataSet(__DIR__ . '/Fixtures/Database/Teas.csv');
}
/**
* @test
*/
public function testDataGetsDeletedBeforeNewDataCreated(): void
{
$this->importCSVDataSet(__DIR__ . '/Fixtures/Database/Teas.csv');
$this->commandTester->execute(
[
'pageUid' => '1',
'--delete-data-before' => true,
]
);
self::assertCSVDataSet(__DIR__ . '/Fixtures/Database/TeasAfterDelete.csv');
}
}

View file

@ -0,0 +1,6 @@
"tx_tea_domain_model_tea"
,"uid","pid","title","description","deleted"
,3,1,"Darjeeling","I love that tea!","0"
,4,1,"Earl Grey","A nice tea!","0"
,1,2,"Black tea","I hate that.","0"
,2,2,"Green tea","Is ok.","0"
Can't render this file because it has a wrong number of fields in line 2.

View file

@ -0,0 +1,4 @@
"pages",,,,,,,,,
,"uid","pid","sorting","deleted","t3_origuid","title",,,
,1,0,256,0,0,"Tea data",,,
,2,0,512,0,0,"Other tea data",,,
1 pages
2 uid pid sorting deleted t3_origuid title
3 1 0 256 0 0 Tea data
4 2 0 512 0 0 Other tea data

View file

@ -0,0 +1,4 @@
"tx_tea_domain_model_tea"
,"uid","pid","title","description","deleted"
,1,1,"Darjeeling","I love that tea!",0
,2,1,"Earl Grey","A nice tea!",0
Can't render this file because it has a wrong number of fields in line 2.

View file

@ -0,0 +1,4 @@
"tx_tea_domain_model_tea"
,"uid","pid","title","description","deleted"
,3,1,"Darjeeling","I love that tea!",0
,4,1,"Earl Grey","A nice tea!",0
Can't render this file because it has a wrong number of fields in line 2.