FileLogTest.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. namespace Tools\Test\Utility;
  3. use Cake\ORM\TableRegistry;
  4. use Exception;
  5. use Tools\TestSuite\TestCase;
  6. use Tools\Utility\FileLog;
  7. /**
  8. * FileLogTest class
  9. */
  10. class FileLogTest extends TestCase {
  11. /**
  12. * Default filename with path to use in test case.
  13. *
  14. * @var string
  15. */
  16. const TEST_DEFAULT_FILENAME_STRING = 'custom_log';
  17. const TEST_DEFAULT_FILEPATH_STRING = LOGS . self::TEST_DEFAULT_FILENAME_STRING . '.log';
  18. /**
  19. * Filename with path to use in string test case.
  20. *
  21. * @var string
  22. */
  23. const TEST_FILENAME_STRING = 'my_file';
  24. const TEST_FILEPATH_STRING = LOGS . self::TEST_FILENAME_STRING . '.log';
  25. /**
  26. * Filename with path to use in array test case.
  27. *
  28. * @var string
  29. */
  30. const TEST_FILENAME_ARRAY1 = 'array_file1';
  31. const TEST_FILEPATH_ARRAY1 = LOGS . self::TEST_FILENAME_ARRAY1 . '.log';
  32. const TEST_FILENAME_ARRAY2 = 'array_file2';
  33. const TEST_FILEPATH_ARRAY2 = LOGS . self::TEST_FILENAME_ARRAY2 . '.log';
  34. /**
  35. * Filename with path to use in object test case.
  36. *
  37. * @var string
  38. */
  39. const TEST_FILENAME_OBJECT = 'object';
  40. const TEST_FILEPATH_OBJECT = LOGS . self::TEST_FILENAME_OBJECT . '.log';
  41. /**
  42. * setUp method
  43. *
  44. * @return void
  45. */
  46. public function setUp() {
  47. parent::setUp();
  48. }
  49. /**
  50. * testLogsStringData method
  51. *
  52. * @return void
  53. */
  54. public function testLogsStringData() {
  55. if (file_exists(static::TEST_FILEPATH_STRING)) {
  56. unlink(static::TEST_FILEPATH_STRING);
  57. }
  58. $result = FileLog::write('It works!', static::TEST_FILENAME_STRING);
  59. $this->assertTrue($result);
  60. $this->assertFileExists(static::TEST_FILEPATH_STRING);
  61. $this->assertRegExp(
  62. '/^2[0-9]{3}-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+ Debug: It works!/',
  63. file_get_contents(static::TEST_FILEPATH_STRING)
  64. );
  65. unlink(static::TEST_FILEPATH_STRING);
  66. }
  67. /**
  68. * testLogsArray method
  69. *
  70. * @return void
  71. */
  72. public function testLogsArray() {
  73. if (file_exists(static::TEST_FILEPATH_ARRAY1)) {
  74. unlink(static::TEST_FILEPATH_ARRAY1);
  75. }
  76. if (file_exists(static::TEST_FILEPATH_ARRAY2)) {
  77. unlink(static::TEST_FILEPATH_ARRAY2);
  78. }
  79. $result1 = FileLog::write(
  80. [
  81. 'user' => [
  82. 'id' => 1,
  83. 'firstname' => 'John Doe',
  84. 'email' => 'john.doe@example.com',
  85. ],
  86. ],
  87. static::TEST_FILENAME_ARRAY1
  88. );
  89. $result2 = FileLog::write(
  90. [
  91. 'user' => [
  92. 'id' => 2,
  93. 'firstname' => 'Jane Doe',
  94. 'email' => 'jane.doe@example.com',
  95. ],
  96. ],
  97. static::TEST_FILENAME_ARRAY2
  98. );
  99. // Assert for `TEST_FILENAME_ARRAY1`
  100. $this->assertTrue($result1);
  101. $this->assertFileExists(static::TEST_FILEPATH_ARRAY1);
  102. $fileContents = file_get_contents(static::TEST_FILEPATH_ARRAY1);
  103. $this->assertRegExp(
  104. '/^2[0-9]{3}-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+ Debug: Array([\s\S]*)\(([\s\S]*)[user]([\s\S]*)\[id\] => 1/',
  105. $fileContents
  106. );
  107. // Assert for `TEST_FILENAME_ARRAY2`
  108. $this->assertTrue($result2);
  109. $this->assertFileExists(static::TEST_FILEPATH_ARRAY2);
  110. $fileContents = file_get_contents(static::TEST_FILEPATH_ARRAY2);
  111. $this->assertRegExp(
  112. '/^2[0-9]{3}-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+ Debug: Array([\s\S]*)\(([\s\S]*)[user]([\s\S]*)\[id\] => 2/',
  113. $fileContents
  114. );
  115. unlink(static::TEST_FILEPATH_ARRAY1);
  116. unlink(static::TEST_FILEPATH_ARRAY2);
  117. }
  118. /**
  119. * testLogsObject method
  120. *
  121. * @return void
  122. */
  123. public function testLogsObject() {
  124. if (file_exists(static::TEST_FILEPATH_OBJECT)) {
  125. unlink(static::TEST_FILEPATH_OBJECT);
  126. }
  127. $result = FileLog::write(
  128. TableRegistry::getTableLocator()->get('Posts'),
  129. static::TEST_FILENAME_OBJECT
  130. );
  131. $this->assertTrue($result);
  132. $this->assertFileExists(static::TEST_FILEPATH_OBJECT);
  133. $this->assertRegExp(
  134. '/^2[0-9]{3}-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+ Debug: TestApp.Model.Table.PostsTable Object/',
  135. file_get_contents(static::TEST_FILEPATH_OBJECT)
  136. );
  137. unlink(static::TEST_FILEPATH_OBJECT);
  138. }
  139. /**
  140. * testLogsIntoDefaultFile method
  141. *
  142. * @return void
  143. */
  144. public function testLogsIntoDefaultFile() {
  145. if (file_exists(static::TEST_DEFAULT_FILEPATH_STRING)) {
  146. unlink(static::TEST_DEFAULT_FILEPATH_STRING);
  147. }
  148. $result = FileLog::write('It works with default too!');
  149. $this->assertTrue($result);
  150. $this->assertFileExists(static::TEST_DEFAULT_FILEPATH_STRING);
  151. $this->assertRegExp(
  152. '/^2[0-9]{3}-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+ Debug: It works with default too!/',
  153. file_get_contents(static::TEST_DEFAULT_FILEPATH_STRING)
  154. );
  155. unlink(static::TEST_DEFAULT_FILEPATH_STRING);
  156. }
  157. }