Code Duplication    Length = 34-38 lines in 2 locations

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

@@ 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.