MediaWiki REL1_33
NoWriteWatchedItemStoreUnitTest.php
Go to the documentation of this file.
1<?php
2
9
10 public function testAddWatch() {
12 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
13 $innerService->expects( $this->never() )->method( 'addWatch' );
14 $noWriteService = new NoWriteWatchedItemStore( $innerService );
15
16 $this->setExpectedException( DBReadOnlyError::class );
17 $noWriteService->addWatch( $this->getTestSysop()->getUser(), new TitleValue( 0, 'Foo' ) );
18 }
19
20 public function testAddWatchBatchForUser() {
22 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
23 $innerService->expects( $this->never() )->method( 'addWatchBatchForUser' );
24 $noWriteService = new NoWriteWatchedItemStore( $innerService );
25
26 $this->setExpectedException( DBReadOnlyError::class );
27 $noWriteService->addWatchBatchForUser( $this->getTestSysop()->getUser(), [] );
28 }
29
30 public function testRemoveWatch() {
32 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
33 $innerService->expects( $this->never() )->method( 'removeWatch' );
34 $noWriteService = new NoWriteWatchedItemStore( $innerService );
35
36 $this->setExpectedException( DBReadOnlyError::class );
37 $noWriteService->removeWatch( $this->getTestSysop()->getUser(), new TitleValue( 0, 'Foo' ) );
38 }
39
42 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
43 $innerService->expects( $this->never() )->method( 'setNotificationTimestampsForUser' );
44 $noWriteService = new NoWriteWatchedItemStore( $innerService );
45
46 $this->setExpectedException( DBReadOnlyError::class );
47 $noWriteService->setNotificationTimestampsForUser(
48 $this->getTestSysop()->getUser(),
49 'timestamp',
50 []
51 );
52 }
53
56 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
57 $innerService->expects( $this->never() )->method( 'updateNotificationTimestamp' );
58 $noWriteService = new NoWriteWatchedItemStore( $innerService );
59
60 $this->setExpectedException( DBReadOnlyError::class );
61 $noWriteService->updateNotificationTimestamp(
62 $this->getTestSysop()->getUser(),
63 new TitleValue( 0, 'Foo' ),
64 'timestamp'
65 );
66 }
67
70 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
71 $innerService->expects( $this->never() )->method( 'resetNotificationTimestamp' );
72 $noWriteService = new NoWriteWatchedItemStore( $innerService );
73
74 $this->setExpectedException( DBReadOnlyError::class );
75 $noWriteService->resetNotificationTimestamp(
76 $this->getTestSysop()->getUser(),
77 Title::newFromText( 'Foo' )
78 );
79 }
80
81 public function testCountWatchedItems() {
83 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
84 $innerService->expects( $this->once() )->method( 'countWatchedItems' )->willReturn( __METHOD__ );
85 $noWriteService = new NoWriteWatchedItemStore( $innerService );
86
87 $return = $noWriteService->countWatchedItems(
88 $this->getTestSysop()->getUser()
89 );
90 $this->assertEquals( __METHOD__, $return );
91 }
92
93 public function testCountWatchers() {
95 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
96 $innerService->expects( $this->once() )->method( 'countWatchers' )->willReturn( __METHOD__ );
97 $noWriteService = new NoWriteWatchedItemStore( $innerService );
98
99 $return = $noWriteService->countWatchers(
100 new TitleValue( 0, 'Foo' )
101 );
102 $this->assertEquals( __METHOD__, $return );
103 }
104
105 public function testCountVisitingWatchers() {
107 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
108 $innerService->expects( $this->once() )
109 ->method( 'countVisitingWatchers' )
110 ->willReturn( __METHOD__ );
111 $noWriteService = new NoWriteWatchedItemStore( $innerService );
112
113 $return = $noWriteService->countVisitingWatchers(
114 new TitleValue( 0, 'Foo' ),
115 9
116 );
117 $this->assertEquals( __METHOD__, $return );
118 }
119
120 public function testCountWatchersMultiple() {
122 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
123 $innerService->expects( $this->once() )
124 ->method( 'countVisitingWatchersMultiple' )
125 ->willReturn( __METHOD__ );
126 $noWriteService = new NoWriteWatchedItemStore( $innerService );
127
128 $return = $noWriteService->countWatchersMultiple(
129 [ new TitleValue( 0, 'Foo' ) ],
130 []
131 );
132 $this->assertEquals( __METHOD__, $return );
133 }
134
137 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
138 $innerService->expects( $this->once() )
139 ->method( 'countVisitingWatchersMultiple' )
140 ->willReturn( __METHOD__ );
141 $noWriteService = new NoWriteWatchedItemStore( $innerService );
142
143 $return = $noWriteService->countVisitingWatchersMultiple(
144 [ [ new TitleValue( 0, 'Foo' ), 99 ] ],
145 11
146 );
147 $this->assertEquals( __METHOD__, $return );
148 }
149
150 public function testGetWatchedItem() {
152 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
153 $innerService->expects( $this->once() )->method( 'getWatchedItem' )->willReturn( __METHOD__ );
154 $noWriteService = new NoWriteWatchedItemStore( $innerService );
155
156 $return = $noWriteService->getWatchedItem(
157 $this->getTestSysop()->getUser(),
158 new TitleValue( 0, 'Foo' )
159 );
160 $this->assertEquals( __METHOD__, $return );
161 }
162
163 public function testLoadWatchedItem() {
165 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
166 $innerService->expects( $this->once() )->method( 'loadWatchedItem' )->willReturn( __METHOD__ );
167 $noWriteService = new NoWriteWatchedItemStore( $innerService );
168
169 $return = $noWriteService->loadWatchedItem(
170 $this->getTestSysop()->getUser(),
171 new TitleValue( 0, 'Foo' )
172 );
173 $this->assertEquals( __METHOD__, $return );
174 }
175
176 public function testGetWatchedItemsForUser() {
178 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
179 $innerService->expects( $this->once() )
180 ->method( 'getWatchedItemsForUser' )
181 ->willReturn( __METHOD__ );
182 $noWriteService = new NoWriteWatchedItemStore( $innerService );
183
184 $return = $noWriteService->getWatchedItemsForUser(
185 $this->getTestSysop()->getUser(),
186 []
187 );
188 $this->assertEquals( __METHOD__, $return );
189 }
190
191 public function testIsWatched() {
193 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
194 $innerService->expects( $this->once() )->method( 'isWatched' )->willReturn( __METHOD__ );
195 $noWriteService = new NoWriteWatchedItemStore( $innerService );
196
197 $return = $noWriteService->isWatched(
198 $this->getTestSysop()->getUser(),
199 new TitleValue( 0, 'Foo' )
200 );
201 $this->assertEquals( __METHOD__, $return );
202 }
203
206 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
207 $innerService->expects( $this->once() )
208 ->method( 'getNotificationTimestampsBatch' )
209 ->willReturn( __METHOD__ );
210 $noWriteService = new NoWriteWatchedItemStore( $innerService );
211
212 $return = $noWriteService->getNotificationTimestampsBatch(
213 $this->getTestSysop()->getUser(),
214 [ new TitleValue( 0, 'Foo' ) ]
215 );
216 $this->assertEquals( __METHOD__, $return );
217 }
218
221 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
222 $innerService->expects( $this->once() )
223 ->method( 'countUnreadNotifications' )
224 ->willReturn( __METHOD__ );
225 $noWriteService = new NoWriteWatchedItemStore( $innerService );
226
227 $return = $noWriteService->countUnreadNotifications(
228 $this->getTestSysop()->getUser(),
229 88
230 );
231 $this->assertEquals( __METHOD__, $return );
232 }
233
236 $innerService = $this->getMockForAbstractClass( WatchedItemStoreInterface::class );
237 $noWriteService = new NoWriteWatchedItemStore( $innerService );
238
239 $this->setExpectedException( DBReadOnlyError::class );
240 $noWriteService->duplicateAllAssociatedEntries(
241 new TitleValue( 0, 'Foo' ),
242 new TitleValue( 0, 'Bar' )
243 );
244 }
245
246}
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
static getTestSysop()
Convenience method for getting an immutable admin test user.
Represents a page (or page fragment) title within MediaWiki.