4
0

UserQueryTest.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * Description of UserQueryTest
  5. */
  6. class UserQueryTest extends PHPUnit\Framework\TestCase {
  7. public function test__construct_whenAllQuery_storesAllParameters(): void {
  8. $query = array('get' => 'a');
  9. $user_query = new FreshRSS_UserQuery($query);
  10. self::assertEquals('all', $user_query->getGetName());
  11. self::assertEquals('all', $user_query->getGetType());
  12. }
  13. public function test__construct_whenFavoriteQuery_storesFavoriteParameters(): void {
  14. $query = array('get' => 's');
  15. $user_query = new FreshRSS_UserQuery($query);
  16. self::assertEquals('favorite', $user_query->getGetName());
  17. self::assertEquals('favorite', $user_query->getGetType());
  18. }
  19. public function test__construct_whenCategoryQuery_storesCategoryParameters(): void {
  20. $category_name = 'some category name';
  21. /** @var FreshRSS_Category&PHPUnit\Framework\MockObject\MockObject */
  22. $cat = $this->createMock(FreshRSS_Category::class);
  23. $cat->expects(self::atLeastOnce())
  24. ->method('name')
  25. ->withAnyParameters()
  26. ->willReturn($category_name);
  27. /** @var FreshRSS_CategoryDAO&PHPUnit\Framework\MockObject\MockObject */
  28. $cat_dao = $this->createMock(FreshRSS_CategoryDAO::class);
  29. $cat_dao->expects(self::atLeastOnce())
  30. ->method('searchById')
  31. ->withAnyParameters()
  32. ->willReturn($cat);
  33. $query = array('get' => 'c_1');
  34. $user_query = new FreshRSS_UserQuery($query, null, $cat_dao);
  35. self::assertEquals($category_name, $user_query->getGetName());
  36. self::assertEquals('category', $user_query->getGetType());
  37. }
  38. public function test__construct_whenFeedQuery_storesFeedParameters(): void {
  39. $feed_name = 'some feed name';
  40. /** @var FreshRSS_Feed&PHPUnit\Framework\MockObject\MockObject */
  41. $feed = $this->createMock(FreshRSS_Feed::class);
  42. $feed->expects(self::atLeastOnce())
  43. ->method('name')
  44. ->withAnyParameters()
  45. ->willReturn($feed_name);
  46. /** @var FreshRSS_FeedDAO&PHPUnit\Framework\MockObject\MockObject */
  47. $feed_dao = $this->createMock(FreshRSS_FeedDAO::class);
  48. $feed_dao->expects(self::atLeastOnce())
  49. ->method('searchById')
  50. ->withAnyParameters()
  51. ->willReturn($feed);
  52. $query = array('get' => 'f_1');
  53. $user_query = new FreshRSS_UserQuery($query, $feed_dao, null);
  54. self::assertEquals($feed_name, $user_query->getGetName());
  55. self::assertEquals('feed', $user_query->getGetType());
  56. }
  57. public function test__construct_whenUnknownQuery_doesStoreParameters(): void {
  58. $query = array('get' => 'q');
  59. $user_query = new FreshRSS_UserQuery($query);
  60. self::assertEmpty($user_query->getGetName());
  61. self::assertEmpty($user_query->getGetType());
  62. }
  63. public function test__construct_whenName_storesName(): void {
  64. $name = 'some name';
  65. $query = array('name' => $name);
  66. $user_query = new FreshRSS_UserQuery($query);
  67. self::assertEquals($name, $user_query->getName());
  68. }
  69. public function test__construct_whenOrder_storesOrder(): void {
  70. $order = 'some order';
  71. $query = array('order' => $order);
  72. $user_query = new FreshRSS_UserQuery($query);
  73. self::assertEquals($order, $user_query->getOrder());
  74. }
  75. public function test__construct_whenState_storesState(): void {
  76. $state = FreshRSS_Entry::STATE_ALL;
  77. $query = array('state' => $state);
  78. $user_query = new FreshRSS_UserQuery($query);
  79. self::assertEquals($state, $user_query->getState());
  80. }
  81. public function test__construct_whenUrl_storesUrl(): void {
  82. $url = 'some url';
  83. $query = array('url' => $url);
  84. $user_query = new FreshRSS_UserQuery($query);
  85. self::assertEquals($url, $user_query->getUrl());
  86. }
  87. public function testToArray_whenNoData_returnsEmptyArray(): void {
  88. $user_query = new FreshRSS_UserQuery(array());
  89. self::assertCount(0, $user_query->toArray());
  90. }
  91. public function testToArray_whenData_returnsArray(): void {
  92. $query = array(
  93. 'get' => 's',
  94. 'name' => 'some name',
  95. 'order' => 'some order',
  96. 'search' => 'some search',
  97. 'state' => FreshRSS_Entry::STATE_ALL,
  98. 'url' => 'some url',
  99. );
  100. $user_query = new FreshRSS_UserQuery($query);
  101. self::assertCount(6, $user_query->toArray());
  102. self::assertEquals($query, $user_query->toArray());
  103. }
  104. public function testHasSearch_whenSearch_returnsTrue(): void {
  105. $query = array(
  106. 'search' => 'some search',
  107. );
  108. $user_query = new FreshRSS_UserQuery($query);
  109. self::assertTrue($user_query->hasSearch());
  110. }
  111. public function testHasSearch_whenNoSearch_returnsFalse(): void {
  112. $user_query = new FreshRSS_UserQuery(array());
  113. self::assertFalse($user_query->hasSearch());
  114. }
  115. public function testHasParameters_whenAllQuery_returnsFalse(): void {
  116. $query = array('get' => 'a');
  117. $user_query = new FreshRSS_UserQuery($query);
  118. self::assertFalse($user_query->hasParameters());
  119. }
  120. public function testHasParameters_whenNoParameter_returnsFalse(): void {
  121. $query = array();
  122. $user_query = new FreshRSS_UserQuery($query);
  123. self::assertFalse($user_query->hasParameters());
  124. }
  125. public function testHasParameters_whenParameter_returnTrue(): void {
  126. $query = array('get' => 's');
  127. $user_query = new FreshRSS_UserQuery($query);
  128. self::assertTrue($user_query->hasParameters());
  129. }
  130. public function testIsDeprecated_whenCategoryExists_returnFalse(): void {
  131. /** @var FreshRSS_Category&PHPUnit\Framework\MockObject\MockObject */
  132. $cat = $this->createMock(FreshRSS_Category::class);
  133. /** @var FreshRSS_CategoryDAO&PHPUnit\Framework\MockObject\MockObject */
  134. $cat_dao = $this->createMock(FreshRSS_CategoryDAO::class);
  135. $cat_dao->expects(self::atLeastOnce())
  136. ->method('searchById')
  137. ->withAnyParameters()
  138. ->willReturn($cat);
  139. $query = array('get' => 'c_1');
  140. $user_query = new FreshRSS_UserQuery($query, null, $cat_dao);
  141. self::assertFalse($user_query->isDeprecated());
  142. }
  143. public function testIsDeprecated_whenCategoryDoesNotExist_returnTrue(): void {
  144. /** @var FreshRSS_CategoryDAO&PHPUnit\Framework\MockObject\MockObject */
  145. $cat_dao = $this->createMock(FreshRSS_CategoryDAO::class);
  146. $cat_dao->expects(self::atLeastOnce())
  147. ->method('searchById')
  148. ->withAnyParameters()
  149. ->willReturn(null);
  150. $query = array('get' => 'c_1');
  151. $user_query = new FreshRSS_UserQuery($query, null, $cat_dao);
  152. self::assertTrue($user_query->isDeprecated());
  153. }
  154. public function testIsDeprecated_whenFeedExists_returnFalse(): void {
  155. /** @var FreshRSS_Feed&PHPUnit\Framework\MockObject\MockObject */
  156. $feed = $this->createMock(FreshRSS_Feed::class);
  157. /** @var FreshRSS_FeedDAO&PHPUnit\Framework\MockObject\MockObject */
  158. $feed_dao = $this->createMock(FreshRSS_FeedDAO::class);
  159. $feed_dao->expects(self::atLeastOnce())
  160. ->method('searchById')
  161. ->withAnyParameters()
  162. ->willReturn($feed);
  163. $query = array('get' => 'f_1');
  164. $user_query = new FreshRSS_UserQuery($query, $feed_dao, null);
  165. self::assertFalse($user_query->isDeprecated());
  166. }
  167. public function testIsDeprecated_whenFeedDoesNotExist_returnTrue(): void {
  168. /** @var FreshRSS_FeedDAO&PHPUnit\Framework\MockObject\MockObject */
  169. $feed_dao = $this->createMock(FreshRSS_FeedDAO::class);
  170. $feed_dao->expects(self::atLeastOnce())
  171. ->method('searchById')
  172. ->withAnyParameters()
  173. ->willReturn(null);
  174. $query = array('get' => 'f_1');
  175. $user_query = new FreshRSS_UserQuery($query, $feed_dao, null);
  176. self::assertTrue($user_query->isDeprecated());
  177. }
  178. public function testIsDeprecated_whenAllQuery_returnFalse(): void {
  179. $query = array('get' => 'a');
  180. $user_query = new FreshRSS_UserQuery($query);
  181. self::assertFalse($user_query->isDeprecated());
  182. }
  183. public function testIsDeprecated_whenFavoriteQuery_returnFalse(): void {
  184. $query = array('get' => 's');
  185. $user_query = new FreshRSS_UserQuery($query);
  186. self::assertFalse($user_query->isDeprecated());
  187. }
  188. public function testIsDeprecated_whenUnknownQuery_returnFalse(): void {
  189. $query = array('get' => 'q');
  190. $user_query = new FreshRSS_UserQuery($query);
  191. self::assertFalse($user_query->isDeprecated());
  192. }
  193. }