|
@@ 561-598 (lines=38) @@
|
| 558 |
|
* @covers \eZ\Publish\API\Repository\LanguageService::createLanguage |
| 559 |
|
* @depends eZ\Publish\API\Repository\Tests\LanguageServiceTest::testCreateLanguage |
| 560 |
|
*/ |
| 561 |
|
public function testCreateLanguageInTransactionWithRollback() |
| 562 |
|
{ |
| 563 |
|
$repository = $this->getRepository(); |
| 564 |
|
|
| 565 |
|
/* BEGIN: Use Case */ |
| 566 |
|
$languageService = $repository->getContentLanguageService(); |
| 567 |
|
|
| 568 |
|
// Start a new transaction |
| 569 |
|
$repository->beginTransaction(); |
| 570 |
|
|
| 571 |
|
try { |
| 572 |
|
// Get create struct and set properties |
| 573 |
|
$languageCreate = $languageService->newLanguageCreateStruct(); |
| 574 |
|
$languageCreate->enabled = true; |
| 575 |
|
$languageCreate->name = 'English (New Zealand)'; |
| 576 |
|
$languageCreate->languageCode = 'eng-NZ'; |
| 577 |
|
|
| 578 |
|
// Create new language |
| 579 |
|
$languageService->createLanguage($languageCreate); |
| 580 |
|
} catch (Exception $e) { |
| 581 |
|
// Cleanup hanging transaction on error |
| 582 |
|
$repository->rollback(); |
| 583 |
|
throw $e; |
| 584 |
|
} |
| 585 |
|
|
| 586 |
|
// Rollback all changes |
| 587 |
|
$repository->rollback(); |
| 588 |
|
|
| 589 |
|
try { |
| 590 |
|
// This call will fail with a "NotFoundException" |
| 591 |
|
$languageService->loadLanguage('eng-NZ'); |
| 592 |
|
} catch (NotFoundException $e) { |
| 593 |
|
// Expected execution path |
| 594 |
|
} |
| 595 |
|
/* END: Use Case */ |
| 596 |
|
|
| 597 |
|
$this->assertTrue(isset($e), 'Can still load language after rollback'); |
| 598 |
|
} |
| 599 |
|
|
| 600 |
|
/** |
| 601 |
|
* Test for the createLanguage() method. |
|
@@ 606-639 (lines=34) @@
|
| 603 |
|
* @covers \eZ\Publish\API\Repository\LanguageService::createLanguage |
| 604 |
|
* @depends eZ\Publish\API\Repository\Tests\LanguageServiceTest::testCreateLanguage |
| 605 |
|
*/ |
| 606 |
|
public function testCreateLanguageInTransactionWithCommit() |
| 607 |
|
{ |
| 608 |
|
$repository = $this->getRepository(); |
| 609 |
|
|
| 610 |
|
/* BEGIN: Use Case */ |
| 611 |
|
$languageService = $repository->getContentLanguageService(); |
| 612 |
|
|
| 613 |
|
// Start a new transaction |
| 614 |
|
$repository->beginTransaction(); |
| 615 |
|
|
| 616 |
|
try { |
| 617 |
|
// Get create struct and set properties |
| 618 |
|
$languageCreate = $languageService->newLanguageCreateStruct(); |
| 619 |
|
$languageCreate->enabled = true; |
| 620 |
|
$languageCreate->name = 'English (New Zealand)'; |
| 621 |
|
$languageCreate->languageCode = 'eng-NZ'; |
| 622 |
|
|
| 623 |
|
// Create new language |
| 624 |
|
$languageService->createLanguage($languageCreate); |
| 625 |
|
|
| 626 |
|
// Commit all changes |
| 627 |
|
$repository->commit(); |
| 628 |
|
} catch (Exception $e) { |
| 629 |
|
// Cleanup hanging transaction on error |
| 630 |
|
$repository->rollback(); |
| 631 |
|
throw $e; |
| 632 |
|
} |
| 633 |
|
|
| 634 |
|
// Load new language |
| 635 |
|
$language = $languageService->loadLanguage('eng-NZ'); |
| 636 |
|
/* END: Use Case */ |
| 637 |
|
|
| 638 |
|
$this->assertEquals('eng-NZ', $language->languageCode); |
| 639 |
|
} |
| 640 |
|
|
| 641 |
|
/** |
| 642 |
|
* Test for the updateLanguageName() method. |