24 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
32 protected $testExtensionsToLoad = [
'typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example'];
57 protected function setUp()
61 $this->importDataSet(
'PACKAGE:typo3/testing-framework/Resources/Core/Functional/Fixtures/pages.xml');
62 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/blogs.xml');
63 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/posts.xml');
64 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/post-post-mm.xml');
65 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/tags.xml');
66 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/tags-mm.xml');
67 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/post-tag-mm.xml');
68 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/persons.xml');
69 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/fe_users.xml');
70 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/fe_groups.xml');
72 $this->objectManager = GeneralUtility::makeInstance(ObjectManager::class);
73 $this->blogRepository = $this->objectManager->get(BlogRepository::class);
74 $this->adminRepository = $this->objectManager->get(AdministratorRepository::class);
82 $blog = $this->blogRepository->findByUid(3);
83 $this->assertFalse($blog->_isDirty());
91 $blog = $this->blogRepository->findByUid(3);
92 $this->assertInstanceOf(LazyLoadingProxy::class, $blog->getAdministrator());
94 $admin = $this->adminRepository->findByUid(3);
95 $this->assertInstanceOf(Administrator::class, $admin);
97 $blog->setAdministrator($admin);
98 $this->assertFalse($blog->_isDirty());
106 $blog = $this->blogRepository->findByUid(3);
107 $this->assertInstanceOf(LazyLoadingProxy::class, $blog->getAdministrator());
110 $this->assertTrue($blog->_isDirty());
118 $blog = $this->blogRepository->findByUid(3);
119 $lazyLoadingProxy = $blog->getAdministrator();
120 $this->assertInstanceOf(LazyLoadingProxy::class, $lazyLoadingProxy);
122 $admin = $this->adminRepository->findByUid(3);
123 $this->assertInstanceOf(Administrator::class, $admin);
125 $blog->setAdministrator($admin);
126 $blog->_memorizeCleanState();
128 $blog->_setProperty(
'administrator', $lazyLoadingProxy);
129 $this->assertFalse($blog->_isDirty());
137 $blogOne = $this->blogRepository->findByUid(3);
138 $this->assertInstanceOf(LazyLoadingProxy::class, $blogOne->getAdministrator());
140 $blogTwo = $this->blogRepository->findByUid(2);
141 $this->assertInstanceOf(LazyLoadingProxy::class, $blogTwo->getAdministrator());
143 $blogOne->_setProperty(
'administrator', $blogTwo->getAdministrator());
144 $this->assertTrue($blogOne->_isDirty());
146 $this->blogRepository->update($blogOne);
148 $updatedBlogOne = $this->blogRepository->findByUid(3);
149 $this->assertSame($updatedBlogOne->getAdministrator()->getUid(), $blogTwo->getAdministrator()->getUid());