BxPostsTestCase.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Shared helpers for Posts-backed content-module unit tests.
  4. */
  5. abstract class BxPostsTestCase extends BxDolTestCase
  6. {
  7. protected $_oModule;
  8. protected $_aModuleInstancesBackup;
  9. protected $_iProfileIdBackup;
  10. protected function setUp(): void
  11. {
  12. $this->_oModule = $this->bxRequirePosts();
  13. $this->_oModule->_oDb;
  14. $this->_aModuleInstancesBackup = $this->bxModuleInstances($this->_oModule);
  15. foreach (['SearchResult', 'FormEntry', 'FormsEntryHelper'] as $sClass)
  16. bx_import($sClass, $this->_oModule->_aModule);
  17. $oProfileId = new ReflectionProperty(BxBaseModGeneralModule::class, '_iProfileId');
  18. $oProfileId->setAccessible(true);
  19. $this->_iProfileIdBackup = $oProfileId->getValue($this->_oModule);
  20. }
  21. protected function bxTemplate()
  22. {
  23. $oTemplate = $this->_oModule->_oTemplate;
  24. if ($oTemplate instanceof BxDolModuleProxy) {
  25. $oProperty = new ReflectionProperty(BxDolModuleProxy::class, '_oProxifiedObject');
  26. $oProperty->setAccessible(true);
  27. $oTemplate = $oProperty->getValue($oTemplate);
  28. }
  29. return $oTemplate;
  30. }
  31. protected function tearDown(): void
  32. {
  33. if ($this->_oModule && $this->_aModuleInstancesBackup !== null)
  34. $this->bxModuleInstances($this->_oModule, $this->_aModuleInstancesBackup);
  35. if ($this->_oModule && $this->_iProfileIdBackup !== null)
  36. $this->bxSetProtected($this->_oModule, '_iProfileId', $this->_iProfileIdBackup, BxBaseModGeneralModule::class);
  37. }
  38. protected function bxReplaceDb($oDb): void
  39. {
  40. $a = $this->_aModuleInstancesBackup;
  41. $a['_oDb'] = $oDb;
  42. $this->bxModuleInstances($this->_oModule, $a);
  43. }
  44. protected function bxSamplePost(array $aOverride = []): array
  45. {
  46. return array_merge([
  47. 'id' => 15,
  48. 'author' => 10,
  49. 'added' => 1700000000,
  50. 'changed' => 1700000100,
  51. 'published' => 1700000000,
  52. 'title' => 'Sample post',
  53. 'abstract' => 'Abstract',
  54. 'text' => 'Body text',
  55. 'allow_view_to' => 3,
  56. 'cf' => 1,
  57. 'status' => 'active',
  58. 'status_admin' => 'active',
  59. 'allow_comments' => 1,
  60. 'thumb' => 0,
  61. 'thumb_data' => '',
  62. 'views' => 0,
  63. 'votes' => 0,
  64. 'rvotes' => 0,
  65. 'score' => 0,
  66. 'reports' => 0,
  67. 'comments' => 0,
  68. 'featured' => 0,
  69. 'labels' => '',
  70. 'location' => '',
  71. ], $aOverride);
  72. }
  73. }