Code Duplication    Length = 24-38 lines in 5 locations

eZ/Publish/API/Repository/Tests/LanguageServiceAuthorizationTest.php 1 location

@@ 27-51 (lines=25) @@
24
     * @see \eZ\Publish\API\Repository\LanguageService::createLanguage()
25
     * @depends eZ\Publish\API\Repository\Tests\LanguageServiceTest::testCreateLanguage
26
     */
27
    public function testCreateLanguageThrowsUnauthorizedException()
28
    {
29
        $this->expectException(\eZ\Publish\API\Repository\Exceptions\UnauthorizedException::class);
30
31
        $repository = $this->getRepository();
32
33
        $anonymousUserId = $this->generateId('user', 10);
34
        /* BEGIN: Use Case */
35
        // $anonymousUserId is the ID of the "Anonymous" user in a eZ
36
        // Publish demo installation.
37
        $userService = $repository->getUserService();
38
        $languageService = $repository->getContentLanguageService();
39
40
        $languageCreate = $languageService->newLanguageCreateStruct();
41
        $languageCreate->enabled = true;
42
        $languageCreate->name = 'English (New Zealand)';
43
        $languageCreate->languageCode = 'eng-NZ';
44
45
        // Set anonymous user
46
        $repository->setCurrentUser($userService->loadUser($anonymousUserId));
47
48
        // This call will fail with a "UnauthorizedException"
49
        $languageService->createLanguage($languageCreate);
50
        /* END: Use Case */
51
    }
52
53
    /**
54
     * Test for the updateLanguageName() method.

eZ/Publish/API/Repository/Tests/LanguageServiceTest.php 2 locations

@@ 593-630 (lines=38) @@
590
     * @covers \eZ\Publish\API\Repository\LanguageService::createLanguage
591
     * @depends eZ\Publish\API\Repository\Tests\LanguageServiceTest::testCreateLanguage
592
     */
593
    public function testCreateLanguageInTransactionWithRollback()
594
    {
595
        $repository = $this->getRepository();
596
597
        /* BEGIN: Use Case */
598
        $languageService = $repository->getContentLanguageService();
599
600
        // Start a new transaction
601
        $repository->beginTransaction();
602
603
        try {
604
            // Get create struct and set properties
605
            $languageCreate = $languageService->newLanguageCreateStruct();
606
            $languageCreate->enabled = true;
607
            $languageCreate->name = 'English (New Zealand)';
608
            $languageCreate->languageCode = 'eng-NZ';
609
610
            // Create new language
611
            $languageService->createLanguage($languageCreate);
612
        } catch (Exception $e) {
613
            // Cleanup hanging transaction on error
614
            $repository->rollback();
615
            throw $e;
616
        }
617
618
        // Rollback all changes
619
        $repository->rollback();
620
621
        try {
622
            // This call will fail with a "NotFoundException"
623
            $languageService->loadLanguage('eng-NZ');
624
        } catch (NotFoundException $e) {
625
            // Expected execution path
626
        }
627
        /* END: Use Case */
628
629
        $this->assertTrue(isset($e), 'Can still load language after rollback');
630
    }
631
632
    /**
633
     * Test for the createLanguage() method.
@@ 638-671 (lines=34) @@
635
     * @covers \eZ\Publish\API\Repository\LanguageService::createLanguage
636
     * @depends eZ\Publish\API\Repository\Tests\LanguageServiceTest::testCreateLanguage
637
     */
638
    public function testCreateLanguageInTransactionWithCommit()
639
    {
640
        $repository = $this->getRepository();
641
642
        /* BEGIN: Use Case */
643
        $languageService = $repository->getContentLanguageService();
644
645
        // Start a new transaction
646
        $repository->beginTransaction();
647
648
        try {
649
            // Get create struct and set properties
650
            $languageCreate = $languageService->newLanguageCreateStruct();
651
            $languageCreate->enabled = true;
652
            $languageCreate->name = 'English (New Zealand)';
653
            $languageCreate->languageCode = 'eng-NZ';
654
655
            // Create new language
656
            $languageService->createLanguage($languageCreate);
657
658
            // Commit all changes
659
            $repository->commit();
660
        } catch (Exception $e) {
661
            // Cleanup hanging transaction on error
662
            $repository->rollback();
663
            throw $e;
664
        }
665
666
        // Load new language
667
        $language = $languageService->loadLanguage('eng-NZ');
668
        /* END: Use Case */
669
670
        $this->assertEquals('eng-NZ', $language->languageCode);
671
    }
672
673
    /**
674
     * Test for the updateLanguageName() method.

eZ/Publish/API/Repository/Tests/SectionServiceTest.php 1 location

@@ 798-834 (lines=37) @@
795
     * @depends eZ\Publish\API\Repository\Tests\SectionServiceTest::testCreateSection
796
     * @depends eZ\Publish\API\Repository\Tests\SectionServiceTest::testLoadSectionByIdentifier
797
     */
798
    public function testCreateSectionInTransactionWithRollback()
799
    {
800
        $repository = $this->getRepository();
801
802
        /* BEGIN: Use Case */
803
        $sectionService = $repository->getSectionService();
804
805
        // Start a new transaction
806
        $repository->beginTransaction();
807
808
        try {
809
            // Get a create struct and set some properties
810
            $sectionCreate = $sectionService->newSectionCreateStruct();
811
            $sectionCreate->name = 'Test Section';
812
            $sectionCreate->identifier = 'uniqueKey';
813
814
            // Create a new section
815
            $sectionService->createSection($sectionCreate);
816
        } catch (Exception $e) {
817
            // Cleanup hanging transaction on error
818
            $repository->rollback();
819
            throw $e;
820
        }
821
822
        // Rollback all changes
823
        $repository->rollback();
824
825
        try {
826
            // This call will fail with a not found exception
827
            $sectionService->loadSectionByIdentifier('uniqueKey');
828
        } catch (NotFoundException $e) {
829
            // Expected execution path
830
        }
831
        /* END: Use Case */
832
833
        $this->assertTrue(isset($e), 'Can still load section after rollback.');
834
    }
835
836
    /**
837
     * Test for the createSection() method.

eZ/Publish/API/Repository/Tests/SectionServiceAuthorizationTest.php 1 location

@@ 29-52 (lines=24) @@
26
     * @see \eZ\Publish\API\Repository\SectionService::createSection()
27
     * @depends eZ\Publish\API\Repository\Tests\SectionServiceTest::testCreateSection
28
     */
29
    public function testCreateSectionThrowsUnauthorizedException()
30
    {
31
        $this->expectException(\eZ\Publish\API\Repository\Exceptions\UnauthorizedException::class);
32
33
        $repository = $this->getRepository();
34
35
        $anonymousUserId = $this->generateId('user', 10);
36
        /* BEGIN: Use Case */
37
        // $anonymousUserId is the ID of the "Anonymous" user in a eZ
38
        // Publish demo installation.
39
        $userService = $repository->getUserService();
40
        $sectionService = $repository->getSectionService();
41
42
        $sectionCreate = $sectionService->newSectionCreateStruct();
43
        $sectionCreate->name = 'Test Section';
44
        $sectionCreate->identifier = 'uniqueKey';
45
46
        // Set anonymous user
47
        $repository->setCurrentUser($userService->loadUser($anonymousUserId));
48
49
        // This call will fail with a "UnauthorizedException"
50
        $sectionService->createSection($sectionCreate);
51
        /* END: Use Case */
52
    }
53
54
    /**
55
     * Test for the loadSection() method.