UserQueryTest.php 7.7 KB

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