| @@ 740-776 (lines=37) @@ | ||
| 737 | * @depends eZ\Publish\API\Repository\Tests\SectionServiceTest::testCreateSection  | 
                                |
| 738 | * @depends eZ\Publish\API\Repository\Tests\SectionServiceTest::testLoadSectionByIdentifier  | 
                                |
| 739 | */  | 
                                |
| 740 | public function testCreateSectionInTransactionWithRollback()  | 
                                |
| 741 |     { | 
                                |
| 742 | $repository = $this->getRepository();  | 
                                |
| 743 | ||
| 744 | /* BEGIN: Use Case */  | 
                                |
| 745 | $sectionService = $repository->getSectionService();  | 
                                |
| 746 | ||
| 747 | // Start a new transaction  | 
                                |
| 748 | $repository->beginTransaction();  | 
                                |
| 749 | ||
| 750 |         try { | 
                                |
| 751 | // Get a create struct and set some properties  | 
                                |
| 752 | $sectionCreate = $sectionService->newSectionCreateStruct();  | 
                                |
| 753 | $sectionCreate->name = 'Test Section';  | 
                                |
| 754 | $sectionCreate->identifier = 'uniqueKey';  | 
                                |
| 755 | ||
| 756 | // Create a new section  | 
                                |
| 757 | $sectionService->createSection($sectionCreate);  | 
                                |
| 758 |         } catch (Exception $e) { | 
                                |
| 759 | // Cleanup hanging transaction on error  | 
                                |
| 760 | $repository->rollback();  | 
                                |
| 761 | throw $e;  | 
                                |
| 762 | }  | 
                                |
| 763 | ||
| 764 | // Rollback all changes  | 
                                |
| 765 | $repository->rollback();  | 
                                |
| 766 | ||
| 767 |         try { | 
                                |
| 768 | // This call will fail with a not found exception  | 
                                |
| 769 |             $sectionService->loadSectionByIdentifier('uniqueKey'); | 
                                |
| 770 |         } catch (NotFoundException $e) { | 
                                |
| 771 | // Expected execution path  | 
                                |
| 772 | }  | 
                                |
| 773 | /* END: Use Case */  | 
                                |
| 774 | ||
| 775 | $this->assertTrue(isset($e), 'Can still load section after rollback.');  | 
                                |
| 776 | }  | 
                                |
| 777 | ||
| 778 | /**  | 
                                |
| 779 | * Test for the createSection() method.  | 
                                |
| @@ 577-614 (lines=38) @@ | ||
| 574 | * @covers \eZ\Publish\API\Repository\LanguageService::createLanguage  | 
                                |
| 575 | * @depends eZ\Publish\API\Repository\Tests\LanguageServiceTest::testCreateLanguage  | 
                                |
| 576 | */  | 
                                |
| 577 | public function testCreateLanguageInTransactionWithRollback()  | 
                                |
| 578 |     { | 
                                |
| 579 | $repository = $this->getRepository();  | 
                                |
| 580 | ||
| 581 | /* BEGIN: Use Case */  | 
                                |
| 582 | $languageService = $repository->getContentLanguageService();  | 
                                |
| 583 | ||
| 584 | // Start a new transaction  | 
                                |
| 585 | $repository->beginTransaction();  | 
                                |
| 586 | ||
| 587 |         try { | 
                                |
| 588 | // Get create struct and set properties  | 
                                |
| 589 | $languageCreate = $languageService->newLanguageCreateStruct();  | 
                                |
| 590 | $languageCreate->enabled = true;  | 
                                |
| 591 | $languageCreate->name = 'English (New Zealand)';  | 
                                |
| 592 | $languageCreate->languageCode = 'eng-NZ';  | 
                                |
| 593 | ||
| 594 | // Create new language  | 
                                |
| 595 | $languageService->createLanguage($languageCreate);  | 
                                |
| 596 |         } catch (Exception $e) { | 
                                |
| 597 | // Cleanup hanging transaction on error  | 
                                |
| 598 | $repository->rollback();  | 
                                |
| 599 | throw $e;  | 
                                |
| 600 | }  | 
                                |
| 601 | ||
| 602 | // Rollback all changes  | 
                                |
| 603 | $repository->rollback();  | 
                                |
| 604 | ||
| 605 |         try { | 
                                |
| 606 | // This call will fail with a "NotFoundException"  | 
                                |
| 607 |             $languageService->loadLanguage('eng-NZ'); | 
                                |
| 608 |         } catch (NotFoundException $e) { | 
                                |
| 609 | // Expected execution path  | 
                                |
| 610 | }  | 
                                |
| 611 | /* END: Use Case */  | 
                                |
| 612 | ||
| 613 | $this->assertTrue(isset($e), 'Can still load language after rollback');  | 
                                |
| 614 | }  | 
                                |
| 615 | ||
| 616 | /**  | 
                                |
| 617 | * Test for the createLanguage() method.  | 
                                |
| @@ 622-655 (lines=34) @@ | ||
| 619 | * @covers \eZ\Publish\API\Repository\LanguageService::createLanguage  | 
                                |
| 620 | * @depends eZ\Publish\API\Repository\Tests\LanguageServiceTest::testCreateLanguage  | 
                                |
| 621 | */  | 
                                |
| 622 | public function testCreateLanguageInTransactionWithCommit()  | 
                                |
| 623 |     { | 
                                |
| 624 | $repository = $this->getRepository();  | 
                                |
| 625 | ||
| 626 | /* BEGIN: Use Case */  | 
                                |
| 627 | $languageService = $repository->getContentLanguageService();  | 
                                |
| 628 | ||
| 629 | // Start a new transaction  | 
                                |
| 630 | $repository->beginTransaction();  | 
                                |
| 631 | ||
| 632 |         try { | 
                                |
| 633 | // Get create struct and set properties  | 
                                |
| 634 | $languageCreate = $languageService->newLanguageCreateStruct();  | 
                                |
| 635 | $languageCreate->enabled = true;  | 
                                |
| 636 | $languageCreate->name = 'English (New Zealand)';  | 
                                |
| 637 | $languageCreate->languageCode = 'eng-NZ';  | 
                                |
| 638 | ||
| 639 | // Create new language  | 
                                |
| 640 | $languageService->createLanguage($languageCreate);  | 
                                |
| 641 | ||
| 642 | // Commit all changes  | 
                                |
| 643 | $repository->commit();  | 
                                |
| 644 |         } catch (Exception $e) { | 
                                |
| 645 | // Cleanup hanging transaction on error  | 
                                |
| 646 | $repository->rollback();  | 
                                |
| 647 | throw $e;  | 
                                |
| 648 | }  | 
                                |
| 649 | ||
| 650 | // Load new language  | 
                                |
| 651 |         $language = $languageService->loadLanguage('eng-NZ'); | 
                                |
| 652 | /* END: Use Case */  | 
                                |
| 653 | ||
| 654 |         $this->assertEquals('eng-NZ', $language->languageCode); | 
                                |
| 655 | }  | 
                                |
| 656 | ||
| 657 | /**  | 
                                |
| 658 | * Test for the updateLanguageName() method.  | 
                                |